我在.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选项,删除转发^但没有成功。
谢谢
答案 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 ?