【问题标题】:Redirecting from subdomain without changing URL从子域重定向而不更改 URL
【发布时间】:2012-08-28 15:03:20
【问题描述】:

我想在不更改 URL 的情况下使用 .htaccess 文件重定向子域。但是想不通。

例如。我要转

http://foo.domain.com

进入

http://www.domain.com/users/foo/dashboard.php

我生成了一个脚本来执行此操作,但 URL 没有保留在 http://foo.domain.com

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule ^ http://www.domain.com/users/%1/dashboard.php [L]

感谢您的帮助!

【问题讨论】:

  • %1 => $1 $1 代表第一组。在你的情况下 (.*)

标签: apache .htaccess web


【解决方案1】:

你在 htaccess 中所做的只是说“如果你找到这个,做一个完整的重定向到那个 url”

这样做:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule ^ dashboard.php?domain=%1 [L, QSA]

它应该可以工作(相对而言,移动到仪表盘在服务器目录结构中的任何位置)

【讨论】:

    【解决方案2】:

    试试这个(假设所有子域都指向根目录):

    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC]
    RewriteRule ^.*$ users/%1/dashboard.php [L]
    

    【讨论】:

      【解决方案3】:

      代理标志 [P] 可以解决问题:

      <IfModule mod_rewrite.c>
      Options +FollowSymLinks
      Options +Indexes
      
      RewriteEngine On
      RewriteBase /
      
      RewriteCond %{HTTP_HOST} !^www\. [NC]
      RewriteCond %{HTTP_HOST} ^(.*)\.example\.org$ [NC]
      RewriteRule http://example.org/users/%1/dashboard.php [P,NC,QSA]
      </IfModule>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-18
        • 2017-02-02
        • 1970-01-01
        • 1970-01-01
        • 2017-09-17
        • 1970-01-01
        • 2014-01-17
        相关资源
        最近更新 更多