Переписать правила для .htaccess - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть базовый вопрос о файле .htaccess.

В настоящее время моя состоит из:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]

Перенаправить все ссылки на протокол передачи гипертекста, защищенный (https) веб-сайта.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^/?([^\.]+)$ $1.html [L]

Переписать все файлы .html без их расширения.

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/?(.+)/?$ /$1/index.html [L]
RewriteRule ^/?(.+/)index\.html$ /$1 [R=301]

Удалить файл index.html из URL-адресов сайта. Нужно ли удалять расширение файла (.html) из-за второго правила?

ErrorDocument 404 /404.html

Нет объяснений. Должен ли я также удалить здесь расширение файла?

И в целом - правильный код, это так, как это должно выглядеть в моем файле .htaccess?

Я ценю вашу помощь.

1 Ответ

0 голосов
/ 04 марта 2019

Я использовал этот код:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^/?([^\.]+)$ $1.html [L]

ErrorDocument 404 /404.html

Правило удаления index.html из URL было бесполезным, потому что я изменил свои ссылки в части html:

<a href="index.html">Homepage</a>

до:

<a href="/">Homepage</a>

и аналог:

<a href="en/index.html">English Homepage</a>

до:

<a href="en">English Homepage</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...