mod_rewrite:精确URL不匹配但匹配非精确

时间:2015-08-25 13:54:04

标签: apache .htaccess mod-rewrite url-rewriting

我在.htaccess文件中使用mod_rewrite重定向到另一个域时遇到问题。

以下是我所拥有的:

RewriteCond %{HTTP_HOST} ^www.somedomain.com/events_detail/an-event [NC]
RewriteRule ^(.*)$ http://otherdomain.com/directory/8559 [L,R=301,NC]

RewriteCond %{HTTP_HOST} ^www.somedomain.com [NC]
RewriteRule ^(.*)$ http://otherdomain.com/directory [L,R=301,NC]

由于某些原因www.somedomain.com/events_detail/an-event我被重定向到http://otherdomain.com/directory而不是http://otherdomain.com/directory/8559

在测试仪上测试我的.htaccess时,它表示它与第一个条件不匹配但与第二个条件匹配。我尝试删除L选项,删除转发^但没有成功。

谢谢

2 个答案:

答案 0 :(得分:1)

RewriteCond %{HTTP_HOST} ^www.somedomain.com$ [NC]
RewriteCond %{THE_REQUEST} /an-Event [NC]
RewriteRule ^(.*)$ http://otherdomain.com/directory/8559 [L,R=301,NC]

RewriteCond %{HTTP_HOST} ^www.somedomain.com$ [NC]
RewriteRule ^(.*)$ http://otherdomain.com/directory [L,R=301,NC]

答案 1 :(得分:0)

据我所知, HTTP_HOST 仅包含主机名(例如 www.somedomain.com ),而不包含完整的网址。您是否尝试过使用 REQUEST_URI SCRIPT_FILENAME