4

我对 justhost.com 帐户上的 .htaccess 文件有疑问。我经常收到内部 500 错误,并且我在网络上尝试了许多不同的解决方案。这是我的 htaccess 文件的样子:

根 HTACCESS

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

应用程序/HTACCESS

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

应用程序/webroot/HTACCESS

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

问题是我在错误日志中得到了这个:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

我尝试将 RewriteBase 设置为 / 但它没有解决问题。

4

2 回答 2

13

您必须在三个 .htaccess 文件中使用 Rewrite base。根目录中包含目录 app 、 lib 、 plugin 和 vendor 的那个应该看起来像

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

app / htaccess 应该看起来像

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /app/
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

最后 app/webroot/htaccess 应该看起来像

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /app/webroot
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

如果您的 lib 不在根文件夹中,您还必须更改 core.php 中的值以将其映射到相关地址。为此,您可以查看食谱中的高级安装。

于 2013-01-28T04:14:52.633 回答
1

检查您的文件权限。

关闭您的 htacess 文件并写入 echo 1;exit; index.php 并检查天气是否显示。

于 2015-02-23T12:07:08.997 回答