我让.htaccess文件愉快地将/conferences/details/21
之类的内容重写为/index.php?pages=conferences&var1=details&var2=21
。
我让Piwik跟踪此网站,该网站显示了很多来自未更新其网址的网站(这是一个非常新的网站重新发布)的网址,例如
http://www.domain.com/index.cfm?page=conference&intConferenceID=81
和
http://www.domain.com/index.cfm?page=conference&intConferenceID=88&type=conference
我想将它们重写为/conferences/details/[numeric ID seen above]
。
我试过这个:
RewriteRule ^index.cfm?page=conference&intConferenceID=(\d+)/?$ /conferences/details/$1 [L,NC,QSA]
显然忽略了第二个例子。但是,它给了我一个404说index.cfm
无法找到。
我需要写什么重写规则才能将上述格式化链接(ID更改)重写为/conferences/details/[ID]
?
答案 0 :(得分:1)
您可以从RewriteCond中提取查询字符串:
RewriteCond %{REQUEST_URI} ^/index.cfm
RewriteCond %{QUERY_STRING} page=(.+)&intConferenceID=([^&]+)
RewriteRule . /%1/details/%2 [L]
根据/foo/bar/21
- >不确定“详细信息”的来源/index.php?f=foo&b=bar&arg=21
改写。