Мой сайт написан с использованием PHP. В моем файле htaccess я использую следующее, чтобы удалить расширение php из моих URL:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]
Пример: www.mysite.com/folder/file.php будет направлен на www.mysite.com/folder/file
Если я перехожу к каталогу без добавления косой черты, сервер автоматически добавляет его:
Пример: www.mysite.com/folder будет направлен на www.mysite.com/folder/
Если я вместо этого перехожу к файлу и добавляю косую черту, я получаю внутреннюю ошибку сервера
Есть ли код, который я могу добавить в свой файл htaccess, где сервер может определить, является ли URL-адрес файла вместо папки? И вместо того, чтобы выдать ошибку, удалить косую черту, чтобы файл был показан?
Вставьте это правило в верхней части вашего .htaccess, чтобы удалить косую черту для не-каталогов:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/+$
RewriteRule ^ %1 [R=301,NE,L]
Других решений пока нет …