Семантические URL для статических HTML-файлов с помощью .htaccess и mod_rewrite
-
26-09-2019 - |
Вопрос
MOD_REWRITE Всегда перегорачивайте меня ... Может кто-нибудь сказать мне правила, которые мне нужно получить следующие чистые URL? Желаемый URL слева, реальный URL справа.
/our-work/ => /our-work.html
/our-work/some-project/ => /our-work/some-project.html
/contact/ => /contact.html
Как видите, я тоже хочу заставить конечные скольжения на всех URL.
Спасибо!
Решение
Попробуйте это правило:
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
А для добавления задних скольжений:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
Обязательно поместите эти правила, которые вызывают внешний перенаправление (явно используя р Флаг или неявно) перед этими правилами, которые просто вызывают внутренний перенаправить / переписать. Так что в этом случае:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
Не связан с StackOverflow