【问题标题】:RewriteCond www and non www to subpageRewriteCond www 和非 www 到子页面
【发布时间】:2014-07-12 16:23:30
【问题描述】:

我是新手,问题很简单,我希望 mysite.eu 和 www.mysite.eu 重定向到他们网站的子页面, 但我不能让它同时工作,因为当我添加这样的东西时,我陷入了一个循环,所以我该如何解决这个问题,这两个都将直接指向该子页面而不会出现循环。

我的例子:

RewriteCond %{HTTP_HOST}  www\.mysite\.eu [NC]
RewriteRule . http://www.mysite.eu/page?page=webshop_fixol&lng=1 [L]

RewriteCond %{HTTP_HOST}  mysite\.eu [NC]
RewriteRule . http://www.mysite.eu/page?page=webshop_fixol&lng=1 [R=permanent,L]

【问题讨论】:

    标签: apache .htaccess mod-rewrite web


    【解决方案1】:

    可以像这样在单个重写规则中完成:

    RewriteCond %{QUERY_STRING} ^$
    RewriteCond %{HTTP_HOST}  ^(www\.)?mysite\.eu$ [NC]
    RewriteRule . page?page=webshop_fixol&lng=1 [L,QSA]
    

    ^(www\.)?mysite\.eu$ 将匹配两个站点 www 和非 www

    【讨论】:

    • 感谢您的快速回复,但我已经对其进行了测试,我得到了 mysite.eu 和 www.mysite.eu 的无限循环,原因可能是我也有这个标头代码:Options Indexes Includes FollowSymLinks MultiViews 或者这也在虚拟主机文件中: RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} -d RewriteRule ^/(.+[^/])$ http://%{HTTP_HOST} /$1/ [R]
    • 他在网址中添加:fixol.eu/…...
    【解决方案2】:

    为什么你有 .那里?确定你不只是想要这个:

    RewriteCond %{HTTP_HOST}  www\.mysite\.eu [NC]
    RewriteRule ^/$ http://www.mysite.eu/page?page=webshop_fixol&lng=1 [L]
    
    RewriteCond %{HTTP_HOST}  mysite\.eu [NC]
    RewriteRule ^/$ http://www.mysite.eu/page?page=webshop_fixol&lng=1 [R=permanent,L]
    

    【讨论】:

    • 是的,我认为这是正确答案,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-11-23
    • 2021-05-07
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多