Я недавно загрузил тему PHP на свой сервер. Он отлично работает с любыми другими разделами, кроме моей домашней страницы. Например, при доступе к www.mywebsite.com/anything
тема работает, но когда на домашней странице www.mywebsite.com
отображается страница сервера по умолчанию.
Я играл с htacess RewriteEngine, и в некоторых случаях он работал, но, вероятно, неправильно. Вот что у меня есть:
<IfModule mod_rewrite.c>
RewriteEngine on
Options -Multiviews
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^(.*)?$ index.php?a=$1 [QSA,NC,L]
ErrorDocument 404 /new/404.php
</IfModule>
Это заставляет мою домашнюю страницу работать, но заголовок не показывает, что в заголовке указано «Страница не найдена». Страница работает, и все, что я меняю, это два RewriteCond выше. Они были установлены на {REQUEST_FILENAME}
, но из-за этого домашняя страница моего веб-сайта не работала и показывала страницу сервера по умолчанию.
В вашем вопросе неясно, удаляются ли правильные файлы PHP. Предполагая, что синтаксис вашего .htaccess
правильный:
Ваше RewriteRule
указывает ваш index.php
как получатель для любых файлов и каталогов, которые не существует, и путь (я полагаю) отправляется в $ _ GET ['a']
... ваш index.php
должен определить и обработать это соответствующим образом.
ErrorDocument
- это отдельный механизм, и еще раз, если обнаруживается 404.php
, он должен, например, заголовок ('HTTP / 1.1 404 File Not Found')
, а затем вывод HTML, который указывает, что страница не найдена.