【问题标题】:.htaccess for either redirecting to subdomain or applying certain rules.htaccess 用于重定向到子域或应用某些规则
【发布时间】:2012-01-21 03:25:11
【问题描述】:

我在一个子域上托管一个 zend 框架项目。可以说,project.mydomain.com。然而,这个域也可以从mydomain.com/project 访问。现在,为了避免必须维护两种不同情况的复杂性,我试图通过将直接访问的路径重定向到子域来最小化复杂性,即

mydomain.com/project > project.mydomain.com

但是,如果使用子域访问相同的目录,那么我也希望对其应用一些规则。

这是我当前的 .htaccess,它允许我使用直接路径,即 mydomain.com/project/

RewriteEngine On

# Exclude some directories from URI rewriting
#RewriteRule ^(dir1|dir2|dir3) - [L]

RewriteRule ^\.htaccess$ - [F]

RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /projects/myproject.com/public/index.php [NC,L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /projects/myproject.com/public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteRule ^public/.*$ /projects/myproject.com/public/index.php [NC,L]

接下来,我将只为子域编写一个 .htaccess。但是,我希望将直接访问的路径重定向到子域。如何通过 .htaccess 进行这种重定向?

请注意,不能通过 php 文件重定向。

【问题讨论】:

    标签: php .htaccess


    【解决方案1】:

    Robin,您似乎正在尝试将路径 mydomain.com/projects 重定向到 projects.mydomain.com。所以,我认为这不会与.htaccess 合并。正如您所需要的,从/projects/your-anotherproject 到几乎所有内容都必须重定向到projects.mydomain.com/your-anotherproject。为每个项目重写 htaccess 是个坏主意。

    如果是这种情况,那么我建议在projects/ root 上使用一个简单的 .htaccess 来代替

    RewriteEngine On
    RedirectMatch 301 ^/projects/(.*)$ http://projects.mydomain.com/$1
    

    这将为您解决该子域上所有子目录的所有情况。现在在项目的根目录中写入您的项目特定.htaccess,就像您在上面所做的那样

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-10
      • 2013-05-28
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多