У меня есть условие перезаписи и правило, которое есть.
RewriteCond %{DOCUMENT_ROOT}$0 !-f RewriteRule ^[^*]+$ index.php [L]
Мне нужно заменить .html
на .php
в %{DOCUMENT_ROOT}$0
.
Причина в том, что я переписываю свой url в .html
но когда этот файл проверяет наличие существующего файла, он терпит неудачу из-за %{DOCUMENT_ROOT}$0
ища файл thefile.html
,
Мне нужно, чтобы он искал thefile.php
.
Чтобы переписать .html
расширения в существующие .php
файлы с тем же именем, попробуйте это правило вместо того, что у вас было:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.html$ $1.php?%{QUERY_STRING} [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.*$ index.php [L]
Что вы только что перезаписали какой-либо несуществующий файл в index.php
Решено!
RewriteCond %{DOCUMENT_ROOT}$0 !-f RewriteRule ^(.*).html$ $1.php [L] RewriteCond %{DOCUMENT_ROOT}$0 !-f RewriteRule ^[^*]+$ index.php [L]
Я должен был использовать его дважды, прежде всего, переписать все .html на .php, а затем на запрос for.php второе условие вступит в игру.