htaccess,mod_Rewrite,cakephp

Tio*_*neb 1 .htaccess mod-rewrite cakephp dreamhost

我已经被困了几个小时.我在网上找到了很多信息,但没有解决我的问题.

我使用自定义PHP安装(5.2.14)在Dreamhost上托管.该站点使用此.htaccess文件返回500内部服务器错误.

看起来重写规则也适用于我的php.cgi文件,但我不知道如何避免这种情况.

我的日志文件显示某处存在无限循环"由于可能的配置错误,请求超出了10个内部重定向的限制".

<IfModule mod_actions.c>
    Options +ExecCGI
    AddHandler php-cgi .php
    Action php-cgi /cgi-bin/php.cgi
    </IfModule>

    <FilesMatch "^php5?\.(ini|cgi)$">
    Order Deny,Allow
    Deny from All
    Allow from env=REDIRECT_STATUS
    </FilesMatch>

    RewriteEngine on
    RewriteBase /
    RewriteRule    ^$ app/webroot/    [L]   
    RewriteRule    (.*) app/webroot/$1 [L]
Run Code Online (Sandbox Code Playgroud)

app/.htaccess:

   RewriteEngine On
   RewriteBase /
   RewriteRule    ^$    webroot/    [L]    
   RewriteRule    (.*) webroot/$1    [L]
Run Code Online (Sandbox Code Playgroud)

和app/webroot/.htaccess

    RewriteEngine On    
    RewriteBase /    
    RewriteCond %{REQUEST_FILENAME} !-d    
    RewriteCond %{REQUEST_FILENAME} !-f    
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!谢谢.

Kev*_*ker 6

我想这可能是你的cgi.尝试这样的事情?

RewriteEngine on
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteRule    ^$ app/webroot/    [L]   
RewriteRule    (.*) app/webroot/$1 [L]
Run Code Online (Sandbox Code Playgroud)

您还需要确保在您的app/webroot/.htaccess中没有发生任何愚蠢的事情.在这里发布两者可能会有所帮助.