我在子域上托管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文件重定向不是一种选择。
答案 0 :(得分:0)
罗宾,您似乎正在尝试将路径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
,就像您在上面做的那样