2014-04-01 39 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> 
相关问题