【问题标题】:mod_rewrite .htaccess subdomain redirectmod_rewrite .htaccess 子域重定向
【发布时间】:2012-09-02 13:56:17
【问题描述】:

我在过去 2 天里搜索和了解 .htaccess 以将所有子域重定向到用户文件夹 不更改网址,但我一直有 3 个小问题。我真的很感激一些帮助

问题 1)

如果我转到http://www.example.com/users/foo,它会自动重定向 http://foo.example.com/ 的网址,但如果我转到 http://www.example.com/users/foo/dashboard.php 它什么都不做,而不是重定向到http://foo.example.com/dashboard.php

这是我使用的代码:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /users/(.+)/\ HTTP/
RewriteRule ^users/([^/]+)/(.*)$ http://$1.example.com/$2 [R=301,L]

问题 2)

如果我去http://foo.example.com/dashboard.php

它从http://www.example.com/users/foo/dashboard.php获取信息

但如果我在地址栏中(在 Firefox 中)输入foo.example.com,它(有时)会自动重定向 到www.foo.example.com,我可以阻止www 前缀吗?

这是代码

RewriteCond %{REQUEST_URI} !^/users/
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ([^.]+)\.example\.com
RewriteRule (.*) /users/%1/$1 [L]

问题 3)

活动网站位于文件夹 http://www.example.com/website 但应该是 在 URL http://www.example.com/ 上可见(就像我从 http://www.example.com/users/foo 获取信息一样 在网址上http://foo.example.com/)。

【问题讨论】:

    标签: regex .htaccess mod-rewrite redirect subdomain


    【解决方案1】:

    关于问题一,我只是检查主机:

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

    关于第二个问题,这是我从drupal .htaccess 文件中获得的修改规则:

    # remove www prefix
    RewriteCond %{HTTP_HOST} ^www\.(.+)\.domain\.com$ [NC]
    RewriteRule ^ http://%1%.domain.com{REQUEST_URI} [L,R=301]
    
    # redirect to the subdirectory
    RewriteCond %{HTTP_HOST} !^www\.(.+)\.domain\.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
    RewriteRule ^ user/%1%{REQUEST_URI} [L,R=301]
    

    关于您的第三个问题,请在此处查看:

    RewriteCond %{HTTP_HOST} ^www.domain.com$
    RewriteRule ^(.*)$ website/$1 [R=301,L]
    

    【讨论】:

      猜你喜欢
      • 2013-07-14
      • 1970-01-01
      • 2010-11-12
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 2019-10-13
      相关资源
      最近更新 更多