удаление index.php с URL домашней страницы

#apache #.htaccess #mod-rewrite

#apache #.htaccess #мод-перезапись

Вопрос:

Как удалить index.php с URL домашней страницы

 example.com/index.php
  

Для

 example.com
  

и

 example.com/directory/index.php
  

Для

 example.com/directory
  

Я прочитал много сообщений о stackoverflow, и когда я использую эти коды, тогда, если я перейду к недопустимому URL-адресу (например — example.com/ahjgbhjkllghfd ) тогда он не будет показывать 404 ответа. он показывает ответ 200 и содержимое главной страницы на недопустимом URL.

{ извините за плохой английский :)}

Комментарии:

1. Не могли бы вы сообщить мне, помогло ли это вам в разделе комментариев моего ответа?

Ответ №1:

Если вам нужен ответ об ошибке 404, попробуйте добавить строку ErrorDocument

 ErrorDocument 404 /error.php
  

/error.php При доступе к файлу он будет отображаться /ahjgbhjkllghfd .

Все вместе может быть так

 RewriteEngine on
RewriteRule ^(.*?)index.php$ /$1 [R=301,NC]

ErrorDocument 404 /error.php
  

Ответ №2:

Не могли бы вы попробовать следующее, написали на мобильном телефоне, не смогли проверить, должно ли это сработать, я полагаю.

 RewriteEngine ON
RewriteRule ^(.*/?)index.php/?$ /$1 [R=301,NC,L]
  

Комментарии:

1. Вы можете удалить RewriteCond , так как не будет каталога с именем index.php