我有一个配置为 DocumentRoot /var/www
的 LAMP 服务器更改为VirtualDocumentRoot /var/www/%-3/
在 Apache2 配置文件中 - 这允许我自动映射 /var/www/<subdomain>
至<subdomain>.example.com
.
我目前正在学习 CakePHP (2.x),Cake 在目录 /var/www/foo/
中;我注意到 URL 未正确重定向,并正在尝试解决此问题;根据http://bit.ly/KmEhHl
,我已将默认 .htaccess 文件修改为(除其他外):
RewriteBase /cake
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
但这会引发 500 内部服务器错误 - 检查 Apache2 的 error.log
和rewrite.log
,这是因为.htaccess
导致无限重定向,并且正在附加 app/webroot
到 URI。
据我了解,L
这里的标志应该指示“最后一条规则” - 我假设这个错误是由于我对 mod_rewrite
的理解不佳造成的,但我不确定这到底发生在哪里。该错误是否是由于此设置的其他一些潜在问题造成的?我知道已经有几个关于此的问题,如果我能找到任何新信息,我将进行更新。任何帮助将不胜感激!
最佳答案
找到答案了!
完整答案由用户“kostasz”提供,地址:http://bit.ly/NSDWE2在评论中。
提示确实是无限重定向 - 使用 RewriteBase /cake
不是正确的基本 URL。
要解决此问题,请添加 RewriteBase /
到每个.htaccess
文件位于 /
, /app/
,和/app/webroot/
.
关于.htaccess - CakePHP 和 VirtualDocumentRoot 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10392258/