繁体   English   中英

.htaccess重定向到404错误

[英].htaccess redirecting to 404 error

问题:我想从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错误。 可能是什么原因?

UPD: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重定向到/index.php?mod=daily吗? 那将是更常见的用法或mod_rewrite。

RewriteRule ^daily_rent$ /index.php?mod=daily [R=301,L]

您不需要RewriteCond

因为您缺少内部重写规则。 尝试以下规则:

RewriteCond %{THE_REQUEST} advert\.php\?id=([0-9]+)\s
RewriteRule ^advert\.php$ /advert/%1? [R=301,L]

RewriteCond %{THE_REQUEST} index\.php\?mod=(daily)\s
RewriteRule ^index\.php$ /%1_rent? [R=301,L]

RewriteRule ^(daily)_rent/?$ /index.php?mod=$1 [QSA,L]

RewriteRule ^advert/([^/]+)/?$ /advert.php?id=$1 [QSA,L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM