Php .htaccess在Laravel中为简单重定向返回500

Php .htaccess在Laravel中为简单重定向返回500,php,apache,.htaccess,laravel,Php,Apache,.htaccess,Laravel,我已经在Laravel中创建了一个应用程序。 我最初的.htaccess是: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On </IfModule> <IfModule mod_rewrite.c> RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d

我已经在Laravel中创建了一个应用程序。 我最初的.htaccess是:

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

选项+FollowSymLinks
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]
它在域api.viglug.org中正常工作。 在我添加了m.forum.viglug.org域之后(与api.viglug.org的根目录相同)。 此时调用api.viglug.org和m.forum.viglug.org完全相同。 我想将m.forum.viglug.org用于文件夹api.viglug.org/mobile,因此我认为它可以用于此。htaccess:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
</IfModule>
<IfModule mod_rewrite.c>
    RewriteCond %{HTTP_HOST} m\. [NC] 
    RewriteRule ^(.*)$ index.php/mobile/$1 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

选项+FollowSymLinks
重新启动发动机
重写cond%{HTTP_HOST}m\。[北卡罗来纳州]
重写规则^(.*)$index.php/mobile/$1[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]
我错了。如果我使用m.forum.viglug.org,它会不断返回错误500,而api.viglug.org会按预期工作。
如何修复此问题?

由于以下两种情况,原始重写仅在不作为真实文件或目录存在的文件上运行:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
您是否尝试将这两个条件添加到附加规则之上

# Mobile site
RewriteCond %{HTTP_HOST} m\. [NC] 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/mobile/$1 [L]

# Normal site
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

您的Apache或PHP错误日志中是否显示任何内容?通常当PHP脚本给出500时,这是因为存在一个致命错误,该错误将被记录到一个文件中。您还可以尝试使用
ini\u set('display\u errors',true)
try
RewriteCond%{HTTP\u HOST}^m将错误临时输出到页面。[NC]
而不是
RewriteCond%{HTTP\u HOST}m\。[NC]
@IMSoP:这是Apache error.log中显示的内容:[Fri Jan 11 19:10:55 2013][error][client 93.33.245.47]由于可能的配置错误,请求超出了10个内部重定向的限制。如有必要,使用“LimitInternalRecursion”增加限制。使用“LogLevel debug”获取回溯。@ShawnDeck:它给我的错误与以前完全相同:(500错误已经消失,但重写规则不起作用,因为它为我提供了index.php页面(没有参数)我担心,这必须取决于Laravel用来提取和使用index.php末尾的pathinfo的任何方法。我没有该框架的经验,因此无法进一步帮助。要检查重写本身是否有效,请尝试将目标更改为测试文件,例如,
test.php?type=mobile&path=$1
,然后转储
$\ET
阵列。