На странице параметров AskApacheRewriteRules вы убедились, что для using_index_permalinks
установлено значение false
, а для using_mod_rewrite_permalinks
установлено значение true
? Если это не так, WordPress попытается использовать PATH_INFO
для ваших постоянных ссылок, в результате чего /index.php/(permalink_structure)
.
Обратите внимание, что класс переписывания WordPress хранит свои правила перезаписи как параметр WordPress в базе данных, откуда AskApacheRewriteRules получает информацию. Плагин также, по-видимому, форматирует правила с помощью функции mod_rewrite_rules
, а затем выводит их на страницу, которая окружает их:
<IfModule mod_rewrite.c>
...
</IfModule>
Итак, вероятная причина, по которой вы не можете найти файл .htaccess
, заключается в том, что он не существует; правила просто присутствуют в базе данных. Причина, по которой правила присутствуют в базе данных, заключается в том, что вы используете постоянные ссылки, а это автоматически сгенерированный набор правил WordPress, который сохраняется независимо от того, используется он на самом деле или нет.
Редактировать: Вы должны иметь файл .htaccess
в корне вашего веб-каталога со следующим содержимым:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If mod_rewrite isn't available, we'll do this a hackish (and bad) way...
ErrorDocument 404 /index.php
</IfModule>
Параметр rewrite_rules
хранится в SELECT option_value FROM wp_options WHERE option_name = 'rewrite_rules'
, но восстанавливается каждый раз, когда вы меняете постоянную ссылку, и не используется, кроме записи в .htaccess
, как я могу сказать.
В любом случае, это определенно правильные правила для того, что вы хотите сделать. Вы уверены, что на вашем хосте включен mod_rewrite
?
Edit:
Давайте на 100% убедимся, что mod_rewrite
работает правильно, и пойдем оттуда.
Создайте файл .htaccess
в корневом веб-каталоге со следующими правилами, в точности как написано:
RewriteEngine On
RewriteRule ^rwtest http://stackoverflow.com/ [R,L]
Затем перейдите на свой сайт с URL example.com/rwtest
и посмотрите, не перенаправлены ли вы в StackOverflow. Если нет, то что-то не так с mod_rewrite
. Если вы это сделаете, то, по крайней мере, мы знаем, что это не проблема.