2014-10-17 49 views
1

我遇到了一个小问题,我的.htaccess似乎无法修复它。将行添加到htaccess后,URL重写失败

RewriteEngine on 
# force ssl 

RewriteCond %{REQUEST_URI} !^/?(apps|user)/ 
RewriteRule ^5/(.*)/(.*).html$ /~ond/index.php?id=5&page=$1&titel=$2 
RewriteRule ^(.*)/(.*).html$ /~ond/index.php?id=$1&titel=$2 

上面的例子无瑕的作品与像一个URL:www.domain.com/123/title.html 不过,我想补充另一条规则:当我添加的代码片段RewriteRule ^(.*)$ /~ond/index.php?id=$1 [L]

在我的htaccess的底部它将返回可能的内部服务器错误500.使用的URL:www.domain.com/This_Is_a_Test

我在做什么错了?这应该是一个非常小的问题。

谢谢。

回答

0

由于无限循环,它导致500服务器错误。通过保持RewriteCond仅允许非文件,非目录请求来防止它:

RewriteEngine on 

RewriteCond %{REQUEST_URI} !^/?(apps|user)/ 
RewriteRule ^5/(.*)/(.*).html$ /~ond/index.php?id=5&page=$1&titel=$2 [L,QSA] 

RewriteRule ^(.*)/(.*).html$ /~ond/index.php?id=$1&titel=$2 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /~ond/index.php?id=$1 [L,QSA] 
+0

非常感谢!你刚刚给我的星期一早晨开了个好头。 – Jordy 2014-10-20 06:48:22

+0

不客气,很高兴它解决了。 – anubhava 2014-10-20 06:49:23