【发布时间】:2014-01-10 10:54:45
【问题描述】:
问题:
我想从www.domain.com/index.php?mod=daily 重定向到www.domain.com/daily_rent
虽然从www.domain.com/advert.php?id=11 重定向到www.domain.com/advert/11 可以正常工作,如下所示:
RewriteCond %{THE_REQUEST} advert\.php\?id=([0-9]+)\ HTTP/
RewriteRule ^advert\.php$ http://www.domain.com/advert/%1? [R=301,L]
同样的规则
RewriteCond %{THE_REQUEST} index\.php\?mod=daily\ HTTP/
RewriteRule ^index\.php$ http://www.domain.com/daily_rent? [R=301,L]
重定向到www.domain.com/daily_rent 并抛出 404 错误。可能是什么原因?
统一更新:
从www.domain.com/index.php?mod=daily 重定向到www.domain.com/daily_rent 工作正常,感谢anubhava
在这种情况下,另一个问题是,在类似的页面上,我有多个查询参数,如下所示(示例):
www.domain.com/?mod=daily&room=1&area=bstn
所以,我尝试使用该规则
RewriteCond %{THE_REQUEST} \?mod=daily&room=([0-9]+)&area=([A-Z]+)\ HTTP/
RewriteRule ^$ http://www.domain.com/daily_rent/room/%1/area/%2? [R=301,L]
RewriteRule ^daily_rent/room/([0-9]+)/area/([A-Z]+)/?$ /?mod=daily&room=$1&area=$2 [QSA,L]
这种情况的解决方案是什么? 谢谢
【问题讨论】:
-
直接去
/daily_rent会不会抛出404?
标签: php regex apache .htaccess mod-rewrite