Я пытаюсь изменить постоянные ссылки в 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