2010-11-05 60 views
1

我有多個CakePHP項目託管在同一個域和一些randoms文件夾與蘭登文件,用於組織我分開APPs上的文件夾,但我有「主」應用程序在網站文件夾,當用戶訪問域時,它應該將URL重寫到/ site,我的問題是隨機文件夾,當我嘗試訪問domain.com/exist_folder時,它將我重定向到/ site。重寫URL到多個APP的子文件夾

我不想重寫如果文件/目錄存在於服務器上。

FTP樹的例子

public_html/ 
-cakephp (CakePHP Core)/ 
    - ... 
-site (CakePHP App)/ 
    - ... 
    -.htaccess 
    -webroot/ 
    -.htaccess 
-exist_folder/ 
    - whateverfiles.ext 
-app1 (CakePHP App)/ 
    - ... 
    -.htaccess 
    -webroot/ 
    -.htaccess 
-folder1/ 
-temp/ 
    -images 
    -videos 
-.htaccess 

我的.htaccess

的public_html /的.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^$ site/ [L] 
    RewriteRule (.*) site/$1 [L] 
</IfModule> 

網站/的.htaccess和APP1 /的.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ webroot/ [L] 
    RewriteRule (.*) webroot/$1 [L] 
</IfModule> 

網站/根目錄/的.htaccess和APP1 /根目錄/的.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

回答

0

所以基本上你有你不想通過Cake的路由和調度某些文件夾。對於這一點,添加以下行您的public_html/.htacess文件:

RewriteRule ^(exist_folder).* - [NC,L] 

這將允許這是在根目錄下的exist_folder直接訪問。在添加此規則後可以訪問http://domain.com/exist_folder

如果你正在尋找一個自動化的解決方案(你的線:我不想重寫,如果文件/目錄存在於服務器上),創建一個PHP文件,將生成一個.htaccess文件與上述基於is_dir() 。每當你添加一個文件夾,運行這個PHP文件which'll生成一個.htaccess與所有例外添加:)

+0

我的CakePHP項目在ubunto服務器作爲子域(如sub_test.test-domain.com)。其實我想運行域(sub_test.test-domain.com/sub_drectory_test),它不起作用。 「RewriteRule ^(exist_folder)。* - [NC,L]」在本地計算機(本地主機或wampserver)中工作正常。請任何幫助? @Ashok – 2014-09-30 06:57:48