Принудительное использование конечной косой черты с помощью HTTPS
Мне было интересно, если кто-то может помочь с небольшой проблемой.htaccess.
Внутри файла.htaccess это, например:
Options -Indexes
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# Normal
RewriteRule ^about$ ./about.html [L,NC]
RewriteRule ^news$ ./news.html [L,NC]
RewriteRule ^other$ ./other.html [L,NC]
Это прекрасно работает, если вы хотите использовать HTTPS и НЕ иметь косую черту после domain.com/about
Мой вопрос:
Как мне применить HTTPS и добавить косую черту в конце, вот так;
или разрешить пользователю добавлять косую черту в конце, не перенаправляя его на страницу ошибки 404.
Также они являются просто HTML-страницами внутри главной папки на сервере.
Один раз за раз вам придется создавать папки "about", "news", "others" и т. Д. И помещать в каждый файл index.html со всеми изображениями, css, js и т. Д., Чтобы получить косую черту.
Я надеюсь, что это можно сделать.
Спасибо!
1 ответ
Вам нужно добавить правило для принудительного использования косой черты, а затем изменить существующие переписывания так, чтобы они соответствовали этому:
Options -Indexes -Multiviews
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# enforce the trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+[^/])$ /$1/ [R,L]
# Normal
RewriteRule ^about/$ ./about.html [L,NC]
RewriteRule ^news/$ ./news.html [L,NC]
RewriteRule ^other/$ ./other.html [L,NC]
Кроме того, чтобы быть в безопасности, отключите Multiviews.