Назад | Перейти на главную страницу

Довольно постоянные ссылки не работают Apache, Wordpress, Mod_rewrite

Я пытаюсь изменить постоянные ссылки в Wordpress, поэтому вместо этого URL-адрес использует имена сообщений.

Я пытался напрямую изменить httpd.conf, как показано ниже, но Apache, похоже, не анализирует URL-адрес. Я все время получаю страницу, которая не найдена.

Я не вижу никаких попыток перенаправления, поскольку журналы перезаписи пусты. Я пробовал несколько условий перезаписи, которые, как известно, работают вне тега, но журналы все еще пусты.

<Directory "/var/www/user1/example.com/public_html">

    Options +Indexes FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from All

    <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>

</Directory>

Кажется, что RewriteRule и RewriteCond не работают при размещении в теге, поскольку, когда я перемещаю эти директивы за пределы тега, apache правильно анализирует URL-адрес, а страница действительно имеет некоторое содержимое. Однако отображаемые страницы больше не имеют никакой структуры; похоже, что некоторые файлы css не загружались или, возможно, перезапись была выполнена неправильно.

Также я проверил журналы перезаписи и заметил, что параметр RewriteBase проходит через запрос, ничего не делая:

110.175.55.89 - - [28/Jun/2014:15:52:00 +1000] [dev.ebizimate.com/sid#7f6cbbab7738 [rid#7f6cbbd07c38/initial] (2) init rewrite engine with requested uri /blog/
110.175.55.89 - - [28/Jun/2014:15:52:00 +1000] [dev.ebizimate.com/sid#7f6cbbab7738][rid#7f6cbbd07c38/initial] (1) pass through /blog/

Любая помощь будет принята с благодарностью. Спасибо.

Похоже, причина того, что правила не применялись, была связана с параметры в тегах. / var / www / является символической ссылкой на каталог / home и в результате использования параметра FollowSymLinks не был установлен правильно, часть содержимого не загружалась или не загружалась вообще (в зависимости от того, где были размещены условия / правила перезаписи).

Прочитав параметры, разрешенные в документации Apache, вы должны указать + или -:

Примечание. Смешивание параметров с + или - с параметрами без недопустимого синтаксиса и будет отклонено во время запуска сервера проверкой синтаксиса с прерыванием.

Итак, все, что мне нужно, это изменить следующую запись:

Параметры + Индексы + FollowSymLinks + ExecCGI

Больше информации здесь: http://httpd.apache.org/docs/trunk/mod/core.html#options