2014-04-01 43 views
0

我試圖從另一個文檔根加載CakePHP應用程序。從文檔根外部加載CakePHP應用程序

這裏是我的Apache配置:

<VirtualHost *:443> 
    ServerName internet.com 
    DocumentRoot "/sites/internet" 

    ... 

    Alias /developer "/sites/intranet/developer" 

</VirtualHost> 

然而,當我訪問internet.com/developer/cakeapp/portal,我得到一個404。如果我訪問intranet.com/developer/cakeapp/portal,它的工作原理。

工作配置Intranet網站:

<VirtualHost *:443> 
     ServerName intranet.com 
     DocumentRoot "/sites/intranet" 

      ... 

     <Directory "/sites/intranet/developer/cakeapp"> 
      <IfModule mod_rewrite.c> 
       RewriteEngine On 
       RewriteBase /developer/cakeapp 
       RewriteCond %{REQUEST_FILENAME} !-d 
       RewriteCond %{REQUEST_FILENAME} !-f 
       RewriteCond %{REQUEST_METHOD} !OPTIONS 
       RewriteRule ^(.*)$ app/webroot/index.php?url=$2 [QSA,L] 
      </IfModule> 
     </Directory> 
</VirtualHost> 

我應該包括在互聯網虛擬主機配置太mod_rewrites?我曾假設他們會在訪問內部網站時進行翻譯。

注意:此設置位於配置爲模擬Intranet和Internet託管的開發服務器上。目標是在這兩個域上重新使用門戶網站。

更新#1

使用蛋糕2.4.5

更新#2

看着我的SSL錯誤日誌文件,我注意到了這一點: File does not exist: /sites/intranet/developer/cakeapp/users

的應用程序重定向到users/login,所以它似乎有些工作。仍然沒有解釋的404

更新#3

新重寫規則正在使用:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /developer/cakeapp 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !^/(app/webroot/)?(img|css|js)/(.*)$ 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 
+0

你應該總是提到你正在使用的確切cakephp版本。 – mark

+0

@mark更新,2.4.5 ... – TekiusFanatikus

+0

此外,您的RewriteRule看起來很舊。請參閱cakephp回購代碼,瞭解它在2.x中的外觀。 – mark

回答

0

這裏是工作的配置。我不得不從Intranet配置中複製一些配置元素,我認爲這會在別名過程中應用。

<VirtualHost *:443> 
    ServerName internet.com 
    DocumentRoot "/sites/internet" 

    ... 

    Alias /developer "/sites/intranet/developer" 

    <Directory "/sites/intranet/developer"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride None 
     Order allow,deny 
     Allow from all 

     RewriteEngine on 
     RewriteBase /developer/cakeapp 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteCond %{REQUEST_URI} !^/(app/webroot/)?(img|css|js)/(.*)$ 
     RewriteRule ^(.*)$ index.php [QSA,L] 

    </Directory> 

</VirtualHost> 
相關問題