【问题标题】:Force "www." via .htaccess强制“www”。通过 .htaccess
【发布时间】:2011-02-05 14:26:12
【问题描述】:

我想强制“www”。在我的网址上(例如,http://domain.com 变为 http://www.domain.com)。但是,我不希望在已经有子域的 URL 上强制使用它(例如 http://images.domain.com 不应该变成 http://www.images.domain.com)。我在网上找到的以下sn-p是后者:

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

我需要做什么才能让它为我工作?谢谢。

【问题讨论】:

    标签: apache .htaccess


    【解决方案1】:

    简单 以下规则强制使用 www,子域除外。

    RewriteCond %{HTTP_HOST} =name.domain [NC]
    RewriteRule ^(.*)$ http://www.name.domain/$1 [R=301,L]
    

    编辑粘贴,重启apache。

    解释:

    RewriteCond %{HTTP_HOST} =name.domain [NC] 仅在有人键入 name.domain(您的域名)时匹配。

    当键入 subdomain.name.domain 时,RewriteCond 为 false 且不重定向。你明白? 在您之前发布的规则中,您匹配 !(not)^(beginning by)www 和 subdomain.name.domain 满足 RewriteCond 并且是您不想要的。 :)

    【讨论】:

    • 您能解释一下“名称”和“域”是什么吗? .htaccess 是否知道这些变量?或者我应该用我的实际值替换它们。我希望有一个可以放在任何网站上的解决方案(无需配置任何东西)。
    • 有没有办法不用硬编码域名?
    猜你喜欢
    • 2011-09-14
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    相关资源
    最近更新 更多