【问题标题】:.htaccess unmasked/forced wildcard subdomain redirect.htaccess 未屏蔽/强制通配符子域重定向
【发布时间】:2012-09-11 19:24:59
【问题描述】:

我想编辑 .htaccess 文件以创建将所有子域的未屏蔽通配符重定向到主 www 子域。

即*.domain.com => www.domain.com

例如www.example.domain.com => www.domain.com

当人们在浏览器地址栏中键入 www.example.domain.com 时,我希望它重定向未屏蔽,以便 URL 实际上明显更改为 www.domain.com。

我目前的 .htaccess 文件(如下所示)强制所有“无 www”流量的“www”,即 http://domain.com 变为 http://www.domain.com,但无法弄清楚 RewriteCond 等命令用于上述情况要求。

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

任何帮助将不胜感激!提前致谢。

【问题讨论】:

    标签: .htaccess mod-rewrite redirect wildcard-subdomain


    【解决方案1】:

    让你的 .htaccess 像这样:

    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
    RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
    
    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+\.domain\.com$ [NC]
    RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
    

    【讨论】:

    • 感谢您的意见@anubhava。我尝试了您的建议,第一部分似乎可以工作,但我没有让第二部分工作(即 *.domain.com => www.domain.com)。我确实先清空了浏览器缓存。任何想法为什么会这样?再次感谢。
    • 您能否发布最新的 .htaccess 和 access.log 文件的相关部分以及您的问题?
    【解决方案2】:

    很简单,试试吧:

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

    您也不需要添加 www 的规则,因此只需将其删除即可。

    【讨论】:

    • 感谢@Yazmat 的输入。不知道这里发生了什么,但我遇到了与 anubhava 的代码相同的问题。 domain.com => www.domain.com 好的,但是 example.domain.com 仍然会导致错误。每次都清空浏览器缓存。干杯。
    • 我不确定它是否有任何区别,但我希望将所有子域重定向到 www 子域,无论它们是否实际作为文件夹存在于主“public_html”文件夹中。我还删除了与 hostgator 的根域关联的重定向,因为这可以通过 .htaccess 文件完成,但到目前为止没有任何变化。
    • 它没有指向任何地方,浏览器尝试加载它并失败,并且 ISP 将浏览器重定向到 BT Yahoo(我的 ISP)错误页面,并显示一条消息“对不起网站 example.domain .com 找不到。'
    • 那么您的子域没有被 DNS 解析,要么您根本没有创建它,要么您没有按照应有的方式配置它
    • 我在 domain.com 主站点所在的主 public_html 文件夹中添加了一些子域/域文件夹。这些是单独的域网站。我没有修改这些 .htaccess 文件,只修改了主 public_html 文件夹中的 .htaccess 文件。 Hostgator 允许您通过输入 URL www.otherdomain.domain.com 来访问这些其他域(例如 otherdomain.com)。我正在尝试将所有此类条目重定向到 domain.com 主页面,以便您只能通过此直接 URL 进入 otherdomain.com 站点,而不是作为 domain.com 的子域,如果这有意义的话。
    猜你喜欢
    • 2018-08-14
    • 2012-04-14
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 2011-08-27
    相关资源
    最近更新 更多