2010-10-01 76 views
1

我试图通过index.php重定向所有流量。.htaccess给所有东西递归错误

这里是我的.htaccess文件:

RewriteEngine On 

RewriteRule ^(.*)$ /index.php?ref=$1 [NC,L] 

我一直都想与HTTP 500错误,我检查error.log中,我看到它的内部递归误差。谁能帮我这个?谢谢。

回答

3

不能完全确定这是否是做到这一点的正规途径,但添加这样的条件将工作:(该QSA添加任何查询字符串)

RewriteCond %{REQUEST_URI} !^/index.php 
RewriteRule ^(.*)$ /index.php?ref=$1 [QSA] 

然而,我建议额外

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

防止静电资源,通过您的index.php发送(除非这是真的你想要什么。)

+0

+1,'!-f'&'!-d' ar在_my_标准'项目开始'htaccess词汇中,是否真的是_canonical_我没有资格说。它的确缓解了从Apache到PHP的匹配问题,它有更多简单的工具来尝试将URL匹配到资源,然后.htaccess文件。唯一的缺点是你对'找不到'和其他错误变得有责任感,一定要在适当的时候发送这些状态码。 – Wrikken 2010-10-01 23:33:31