@Nik_o_lay
Для сайта нужно составить несколько правил в htaccess.
1. Убрать из сылок расширение .html (https://example.com/about.html)
2. При одинаковом названии файла и папки открывать файл.
3. Если есть слеш в конце делать редирект на страницу с без слеша.
4. Удалять (делать редирект) слеши из ссылок (https://example.com/////about)
5. Сделать редирект с www. на без www.
6. Сделать редирект с http на https.
Для некторых я уже нашел, вроде работают:
DirectorySlash Off
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*) /$1.html [L]
RewriteCond %{THE_REQUEST} s/+(.*?/)?(?:index)?(.*?).(html|php)[s?/] [NC]
RewriteRule ^(.*) /%1%2 [R=302,L]
RewriteCond %{REQUEST_URI} !(/$|.) [NC]
RewriteRule ^ %{REQUEST_URI}/ [R=302,L]
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{THE_REQUEST} ([^s]*)/{2,}(?[^s]*)?
RewriteRule (.*) / [R=301,L]
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Помогите, пожалуйста, правильно все прописать и найти для остальных правил
Решения вопроса 1
@dodo512
DirectorySlash Off
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ https://site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[^?]+// [OR]
RewriteCond %{HTTP_HOST} ^www. [NC]
RewriteRule .* https://site.ru/$0 [R=301,L]
RewriteCond %{THE_REQUEST} ^S+s([^?s]*?)(/index)?.html
RewriteRule ^ https://site.ru%1 [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*) /$1.html [L]
7
комментариев
Ответы на вопрос 1
@shambler81