Поддержка Проблемы и решения Проблема с постоянными ссылками

  • Решено aledain

    (@aledain)


    Версия блога 3.0.1. В 3.0.2 проблема остаётся.

    Блог находится в подкаталоге сайта /blog/
    Хочу изменить стандартные ссыки на /p/%post_id%/%postname%

    Если .htaccess в этом подкаталоге /blog/ отсутствует или прав не хватает, то как и должно быть пишется сообщение, чтобы я внёс в файл изменения вручную.
    Вот такие строчки предлагается добавить:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /blog/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]
    </IfModule>

    Но, чтобы не делать это вручную я создал этот файл .htaccess, дал временно ему права 777 (то есть полные права).

    При этом при попытке изменить структуру постоянных ссылок мне уже не выдаётся сообщение о том, чтобы я вручную внёс правила в .htaccess.

    Но проблема в том, что при этом файл .htaccess всё равно остаётся пустым. То есть вордпресс в него ничего не пишет даже при отсутствии ошибок. Как то странно.
    Это первая проблема. Хотелось бы с ней разобраться.

    Но есть и вторая.
    Внёс я в файл .htaccess предложенный вордпрессом код.
    Но при этом редирект видимо не работает. Т.е. на всём блоге ссылки изменились, став вида /p/239/kak-ya-provel=leto, но при открытии таких ссылок я получаю ошибку
    Not Found

    The requested URL /blog/p/18/novinki-kino-stoit-li-smotret was not found on this server.

    При этом и поменялись ссыки в архиве, ссылки категорий, хотя никаких префиксов для этих ссылок я в настройке постоянных ссылок не менял (поля оставил пустые).

    О конфигурации:
    Сервер FreeBSD 8
    Основной сайт под NGINX 0.8
    Блог под Apach 2.2, чтобы поддержка .htaccess была.

    Вот так идёт передача на апач:

    location /blog/ {
                 proxy_pass   http://127.0.0.1:8081;
                 proxy_set_header Host $host;
                 proxy_set_header X-Real-IP $remote_addr;
                 #proxy_set_header X-Forwarded-For $proxy_add_x_forwarder_for;
                 index       index.php;
             }

    В NGINX есть немало реврайтов, в том числе и для блога.

    Вопросы:
    1. Почему в .htaccess не пишутся правила автоматом? из-за чего проблема? может ли быть проблема из-за того, что блог в подкаталоге сайта?
    2. Моожет ли запрос (ссылка) передавать сначала NGINX, затем идут его реврайты и только после этого уже всё обработанное идёт в апач? Или нгинкс тут не при чём?
    3. Можно ли в нгинкс прописать реврайты, чтобы не использовать апач?
    4. Указанные правила для записи в .htaccess это универсальное правило, которое всю обработку передаёт на самом деле вордпрессу, чтобы уже он сам разбирался с постоянными ссылками?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Автор aledain

    (@aledain)

    Возможно не совсем корректно написал в начале. Исправлю.

    Блог находится в подкаталоге сайта /blog/
    т.е. http://www.xxx.net/blog/

    Хочу изменить стандартные ссылки на /p/%post_id%/%postname%
    т.е. ссылка должна выглядеть так http://www.xxx.net/blog/p/%post_id%/%postname%

    RewriteRule . /blog/index.php [L]
    попробуйте
    RewriteRule . /index.php [L]
    вы же уже направили корневой каталог в папку RewriteBase /blog/

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Проблема с постоянными ссылками» закрыта для новых ответов.