Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess CakePHP htaccess在本地运行站点时重定向到实时站点_.htaccess_Cakephp - Fatal编程技术网

.htaccess CakePHP htaccess在本地运行站点时重定向到实时站点

.htaccess CakePHP htaccess在本地运行站点时重定向到实时站点,.htaccess,cakephp,.htaccess,Cakephp,我正在一个使用CakePHP的网站上工作。我需要开始添加一些功能到这个网站,所以我把一切从现场网站到我的开发机器(MacOSLion和MAMP服务器)。当我尝试加载站点(localhost/example.com/)时,它会自动将我重定向到实时站点(www.example.com) 以下是根htaccess文件内容: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^$

我正在一个使用CakePHP的网站上工作。我需要开始添加一些功能到这个网站,所以我把一切从现场网站到我的开发机器(MacOSLion和MAMP服务器)。当我尝试加载站点(localhost/example.com/)时,它会自动将我重定向到实时站点(www.example.com)

以下是根htaccess文件内容:

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_HOST}   !^$
    RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
    RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>
编辑:我已经为apache启用了调试日志级别,以便可以查看更多日志消息。以下是访问错误为500的项目根目录时的日志详细信息:

[Fri Jun 01 11:00:35 2012][debug]mod_deflate.c(615):[client::1]Zlib:0到2的压缩:URL/example.com/webroot/index.php

[Fri Jun 01 11:00:35 2012][debug]mod_headers.c(756):headers:ap_headers\u output\u filter()

我还包括了访问站点后的访问日志数据,错误为500:


127.0.0.1-[01/Jun/2012:11:03:02-0400]“GET/example.com/HTTP/1.1”500 20“-”Mozilla/5.0(Macintosh;Intel Mac OS X 10_7_4)AppleWebKit/536.5(KHTML,如Gecko)Chrome/19.0.1084.53 Safari/536.5”
用以下代码替换现有的.htaccess代码:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /example.com/

    RewriteRule (?!^webroot/)^(.*)$ webroot/$1 [L]
</IfModule>

重新启动发动机
RewriteBase/example.com/
重写规则(?^webroot/)^(.*)$webroot/$1[L]

验证apache重写模块是否已启用?我确信重写模块已启用。(phpinfo()显示加载的模块,包括mod_rewrite)。我还使用“重写”在本地运行其他网站,该功能运行良好(基于zend framework)。在用您的代码替换我的代码后,我收到以下错误:
在此服务器上找不到请求的URL/webroot/。
我的项目定义。包含
webroot
目录,它位于我的项目的根目录下。要进行测试,请在上面重命名。htaccess访问其他内容,然后尝试加载
http://site.com/webroot/
它打开了吗?您在webroot中是否有另一个.htaccess?还想知道您的
$DOCUMENT\u ROOT
?webroot中有一个htaccess。我已经更新了我的问题以包含更多信息。您还可以转到
http://site.com/webroot/
。你是想让我参观现场吗?执行此操作后(在实时站点上),页面将正常加载,但会显示页面未找到消息。访问
localhost/site.com/webroot
会导致500个内部服务器错误感谢您的更新。您是否也可以像以下问题一样提供您的确切目录结构:。我很难理解webroot文件夹的实际位置。它是否直接位于$DOCUMENT\u ROOT下。
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /example.com/

    RewriteRule (?!^webroot/)^(.*)$ webroot/$1 [L]
</IfModule>