内部错误500与htaccess文件

时间:2012-07-18 11:30:42

标签: php apache .htaccess webserver

上传htaccess文件后,我的网站显示内部服务器错误500 ...

RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^deztimes\.com
RewriteRule (.*) http://deztimes.com/$1 [R=301, L] 
RewriteRule ^([^/]*)\.html$ /index.php?tag=$1 [L]
RewriteRule ^do/([^/]*)/post/([^/]*)/size/([^/]*)/status/([^/]*)/([^/]*)\.jpg$ /index.php?do=$1&post=$2&size=$3&status=$4&title=$5 [L]
RewriteRule ^do/([^/]*)/post/([^/]*)/([^/]*)\.jpg$ /index.php?do=$1&post=$2&title=$3 [L]
RewriteRule ^do/([^/]*)/size/([^/]*)/status/([^/]*)/id/([^/]*)/([^/]*)\.jpg$ /?do=$1&size=$2&status=$3&id=$4&tite=$5 [L]
RewriteRule ^do/([^/]*)/id/([^/]*)/([^/]*)\.jpg$ /?do=$1&id=$2&title=$3 [L]
RewriteRule ^do/([^/]*)/image/([^/]*)/size/([^/]*)/status/([^/]*)/([^/]*)\.jpg$ /index.php?do=$1&image=$2&size=$3&status=$4&title=$5 [L]
RewriteRule ^do/([^/]*)/image/([^/]*)/([^/]*)\.jpg$ /index.php?do=$1&image=$2&title=$3 [L]
RewriteRule ^do/([^/]*)/height/([^/]*)/id/([^/]*)/([^/]*)\.jpg$ /index.php?do=$1&height=$2&id=$3&title=$4 [L]
RewriteRule ^do/([^/]*)/id/([^/]*)/([^/]*)\.jpg$ /index.php?do=$1&id=$2&title=$3 [L]
RewriteRule ^post/([^/]*)/([^/]*)\.html$ /?post=$1&title=$2 [L]

感谢

2 个答案:

答案 0 :(得分:1)

具体来说,重写引擎对于空格并不那么聪明,所以每当你有空格时它都会假设你有另一个参数。所以你的htaccess文件的这一行:

RewriteRule (.*) http://deztimes.com/$1 [R=301, L] 

重写引擎看到指令:RewriteRule,第一个参数(匹配)(.*)第二个参数(目标)http://deztimes.com/$1,第三个参数(标记)[R=301, 和第四个参数 L]。从技术上讲,您可以将多个标志作为单独的参数,但它们需要用方括号括起来,[] 。您拥有的2个标志没有用方括号括起来。这没关系:

RewriteRule (.*) http://deztimes.com/$1 [R=301] [L] 

这没关系:

RewriteRule (.*) http://deztimes.com/$1 [R=301,L] 

答案 1 :(得分:0)

我在docroot中放了完全相同的.htaccess,并产生了错误。在第一个RewriteRule中逗号之后删除标志之间的空格后,错误就消失了。