添加.html扩展名为slug

时间:2015-05-11 06:34:33

标签: .htaccess

在这篇文章中:htaccess add .html extension for urls with or without trailing slash我有99%的解决方案将slug重写为.html扩展名。 我的问题是,是否也可以制作     http://domain.com 动态?

index.php可能在子目录(IE.test / index.php)上运行也可能没有。

上述帖子的代码是:

RewriteEngine on
Options +FollowSymLinks
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^(([\w/-]+)?[\w-])/?(?!:\.html)$ http://domain.com/$1.html [L,R=301]
RewriteRule ^(([\w/-]+)?[\w-])\.html$ test/index.php?slug=$1 [L]

PS:%{HTTP_HOST}似乎无法解决问题。

1 个答案:

答案 0 :(得分:0)

这应该通过从目标URI中删除主机部分来实现:

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^(([\w/-]+)?[\w-])/?(?!:\.html)$ /$1.html [L,R=302,NC]

RewriteRule ^(([\w/-]+)?[\w-])\.html$ admin/index.php?slug=$1 [L,QSA,NC]

确保在测试之前清除浏览器缓存,并且没有其他规则。