Семантические URL для статических HTML-файлов с помощью .htaccess и mod_rewrite

StackOverflow https://stackoverflow.com/questions/2836400

Вопрос

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]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top