事实上,我正在研究一个小的PHP脚本。我创建了一些规则来将nonwww重定向到www版本,这是我的代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule app-([0-9]+)\.html app.html?id=$1 [L,QSA]
AddType application/x-httpd-php5 .html .htm
重定向主页时工作正常,但是当我想重定向site.com/app-9.html时,它只是重定向到www版本,如下所示: www.site.com/app.html?id=9。 它应该将site.com/app-9.html重定向到www.site.com/app-9.html。我怎么能实现这个目标呢?
通:
site.com/app-9.html
目前的结果:
www.site.com/app.html?id=9
必填结果:
www.site.com/app-9.html
答案 0 :(得分:1)
仅为app-9.html添加了验证,因为其他人需要该规则。
使用此:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
## added validation for app-9.html only
RewriteCond %{REQUEST_FILENAME} !app-9.html -f
RewriteRule app-([0-9]+)\.html app.html?id=$1 [L,QSA]
AddType application/x-httpd-php5 .html .htm
答案 1 :(得分:0)
可以插入
RewriteRule ^ / page / page?
进入你的重写规则?这将完全删除查询字符串。