2012-01-21 51 views
2

我在一個子域上託管一個zend框架項目。可以說,project.mydomain.com。然而,該域名也可以從mydomain.com/project訪問。現在,爲了避免不得不保持兩種不同的情況的複雜性,我想盡量減少通過直接訪問路徑重定向到子域,即.htaccess重定向到子域或應用某些規則

mydomain.com/project> project.mydomain.com

複雜

但是,如果使用子域訪問同一個direcoty,那麼我希望將一些規則應用於它。

這是我這允許我使用直接路徑即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。但是,我希望將直接訪問的路徑重定向到子域。如何通過.htaccess進行重定向?

請注意,通過php文件重定向不是一個選項。

回答

0

羅賓,它看起來像你試圖將路徑mydomain.com/projects重定向到projects.mydomain.com。所以,我不認爲這將結合.htaccess。正如你所需要的,幾乎所有從/projects/your-anotherproject到必須被重定向到projects.mydomain.com/your-anotherproject。重寫每個項目的htaccess是一個糟糕的想法。

如果是這樣的話,那麼我建議有上projects/根,而不是

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

這將解決你所有的情況下,對所有的子目錄,在該子網域簡單的.htaccess。現在寫你的項目特定.htaccess在項目的根,就像你正在做的

+0

謝謝....我正在使用一個不好的解決方案。 – mrN