我試圖從另一個文檔根加載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>
你應該總是提到你正在使用的確切cakephp版本。 – mark
@mark更新,2.4.5 ... – TekiusFanatikus
此外,您的RewriteRule看起來很舊。請參閱cakephp回購代碼,瞭解它在2.x中的外觀。 – mark