Apache .htaccess: Как добавить пропущенную косую черту в URL, но игнорировать файлы и специальные URL? - PullRequest
0 голосов
/ 11 июня 2018

Поскольку мой веб-проект иногда выдает 404 секунды, если завершающие косые черты отсутствуют, я всегда хочу, чтобы мой сервер добавил конечные косые черты в URL-адреса.Поэтому я использовал следующий шаблон в .htaccess:

# ################################## #
#      Redirect URLs which are not files to their trailing slash equivalent #
# ################################## #
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$ /$1$2/ [L,R=301]

Это выглядело нормально, но потом я понял, что ссылки типа

http://www.my -awesome-website.com / theme / base.css? ver = 1995

преобразовывался в

http://www.my -awesome-website.com / theme /base.css /? ver = 1995

Что явно нежелательно и портит сайт.Как мне переписать это правило так, чтобы любые запросы на файлы (.php, .jpg, .html и т. Д.) Точно не включались?

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете попробовать это правило (при условии, что у вас нет точек в ваших не файловых запросах):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)([^./])$ %{REQUEST_URI}/ [L,R=301,NE]

Обязательно проверьте это в новом браузере, чтобы избежать старого кэша.

...