Принудительное использование конечной косой черты с помощью 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 и добавить косую черту в конце, вот так;

https://www.domain.com/about/

или разрешить пользователю добавлять косую черту в конце, не перенаправляя его на страницу ошибки 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.

Другие вопросы по тегам