【发布时间】:2013-12-26 17:23:17
【问题描述】:
我已经在 OSX 上设置了 apache 供本地 Web 开发使用,并使用 dnsmasq 创建了一个动态虚拟主机,这样访问 foo.dev 将指向我的 ~/Sites/sites 文件夹中的 /foo 目录。
这就是虚拟主机规则的样子:
<Virtualhost *:80>
VirtualDocumentRoot "/Users/harryg/Sites/sites/%1"
<Directory "/Users/harryg/Sites/sites">
Order allow,deny
Allow from all
Options Indexes FollowSymLinks Includes ExecCGI
# New directive needed in Apache 2.4.3:
Require all granted
AllowOverride All
Satisfy Any
</Directory>
ErrorLog "/Users/harryg/Sites/logs/sites/error.log"
CustomLog "/Users/harryg/Sites/logs/sites/access.log" common
ServerName sites.dev
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>
这一切都很好,但我下载了一份 cakephp 并将其放在目录 ~/Sites/sites/cake 中。当我访问 http://cake.dev 时,我被带到了 cakephp 默认应用程序页面,这是预期的,但是有一个关于 url 重写没有正确配置并且样式表等不加载的警告。我关注the guide 并尝试将以下内容放在蛋糕目录的.htaccess 中:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
然后我得到一个500 Internal Server Error。错误日志说:
请求超出了 10 次内部重定向的限制,因为可能 配置错误。使用“LimitInternalRecursion”来增加 必要时限制。使用“LogLevel debug”获取回溯。
建议重写规则在某种程度上是冲突的。知道如何解决这个问题吗?
【问题讨论】:
标签: apache .htaccess cakephp mod-rewrite url-rewriting