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

mod_rewrite всегда экранирует меня... кто-либо может сказать мне правила, я должен получить следующие чистые URL? Желаемый URL слева, реальный URL справа.

/our-work/ => /our-work.html
/our-work/some-project/ => /our-work/some-project.html
/contact/ => /contact.html

Как Вы видите, я хочу вызвать запаздывание наклонных черт на всех URL также.

Спасибо!

7
задан JJJ 16 December 2015 в 14:41
поделиться

1 ответ

Попробуйте это правило:

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

А для добавления косой черты:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]

Убедитесь, что вы поместили правила, которые вызывают внешнее перенаправление (явно с помощью флага R или неявно) перед теми правилами, которые вызывают внутреннее перенаправление/перезапись. Так что в данном случае:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
10
ответ дан 7 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: