【问题标题】:URL rewriting for cakephp on local OSX apache在本地 OSX apache 上为 cakephp 重写 URL
【发布时间】: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


    【解决方案1】:

    解决了。答案是简单地将以下行添加到我的 .htaccess 文件中:

    RewriteBase /
    

    不知道为什么它是必要的,但它有效!

    【讨论】:

      猜你喜欢
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-13
      • 2012-01-07
      • 1970-01-01
      相关资源
      最近更新 更多