具有 .htaccess 和 mod_rewrite 的静态 HTML 文件的语义 URL

2024-03-30

mod_rewrite 总是让我困惑......谁能告诉我获得以下干净 URL 所需的规则?左边是所需的 URL,右边是真实的 URL。

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

正如您所看到的,我也想在所有 URL 上强制使用尾部斜杠。

Thanks!


试试这个规则:

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]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有 .htaccess 和 mod_rewrite 的静态 HTML 文件的语义 URL 的相关文章

随机推荐