上传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]
感谢
答案 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中逗号之后删除标志之间的空格后,错误就消失了。