.htaccess - 清除URL,500内部服务器错误

时间:2013-10-14 15:06:19

标签: .htaccess loops redirect internal-server-error clean-urls

我已将此作为我的.htaccess:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html

# Where it's all about
RewriteRule ^users/([a-zA-Z0-9]+)$ users.php?user=$1
RewriteRule ^users/([a-zA-Z0-9]+)/$ users.php?user=$1

RewriteEngine On
RewriteCond %{HTTP_HOST}  ^www.daltonempire.nl [nocase]
RewriteRule ^(.*) 
http://daltonempire.nl/$1 [last,redirect=301]

我尝试制作干净的网址,将daltonempire.nl/users/Me重定向到daltonempire.nl/users.php?user=Me

但是,我悲惨地失败了。我的网站现在不断返回500 Internal Server Error。 (我可能以某种方式创建了一个重定向循环?)

我做错了什么? (我需要做些什么来解决它?)

1 个答案:

答案 0 :(得分:1)

相信你在最后一条规则中有一个额外的换行符。另外,请确保在所有规则中使用L(最后)标志。

RewriteEngine on 

# Where it's all about
RewriteRule ^users/([a-zA-Z0-9]+)/?$ users.php?user=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.+?)/?$ $1.html [L]

RewriteCond %{HTTP_HOST} ^www\.(daltonempire\.nl)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301,NE]