我正在子域上托管一个zend框架项目。比方说,project.mydomain.com
。然而,该域也可以从mydomain.com/project
访问。现在,为了避免必须维护两种不同情况的复杂性,我试图通过将直接访问的路径重定向到子域(即)来最小化复杂性
mydomain.com/project>project.mydomain.com
但是,如果使用子域访问相同的目录,那么我希望一些规则也适用于它。
这是我的currect.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文件重定向不是一个选项。
Robin,看起来您正在尝试将路径mydomain.com/projects
重定向到projects.mydomain.com
。所以,我不认为这会被合并。htaccess。正如你所需要的,从/projects/your-anotherproject
到的几乎所有内容都必须重定向到projects.mydomain.com/your-anotherproject
。为每个项目重写htaccess是个坏主意。
如果是这种情况,那么我建议在projects/
根上使用简单的.htaccess,而不是
RewriteEngine On
RedirectMatch 301 ^/projects/(.*)$ http://projects.mydomain.com/$1
这将解决该子域上所有子目录的所有情况。现在,在项目的根目录中编写项目特定的.htaccess
,就像您在上所做的那样