使用RewriteRule php 500内部服务器错误

时间:2011-08-03 00:03:18

标签: php .htaccess mod-rewrite

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-\s]+)/([a-zA-Z0-9_-\s]+)/([a-zA-Z0-9_-\s()]+)/?$ product.php?group=$1&salt=$2&name=$3 [L]

它与我以前的托管工作正常,但当我将我的托管更改为1and1(Linux)时,它给了我500内部服务器错误。 请帮帮我。 感谢

2 个答案:

答案 0 :(得分:0)

您是否确定新的提供商已启用mod_rewrite?这是mod_rewrite看到500个错误的最常见原因。

要进行快速测试,只需使用以下行替换完整的.htaccess首先备份原始.htaccess

RewriteEngine on
RewriteRule ^(.*)$ http://www.google.com [R]

如果mod_rewrite已启用,则会将您的所有请求重定向到Google。

答案 1 :(得分:0)

安装mod重写的正确方法是使用<IfModule mod_rewrite.c>

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^([a-zA-Z0-9_-\s]+)/([a-zA-Z0-9_-\s]+)/([a-zA-Z0-9_-\s()]+)/?$ product.php?group=$1&salt=$2&name=$3 [L]
</IfModule>

这将确保仅在安装mod_rewrite时才运行mod重写。这至少应该停止服务器错误。如果不是这意味着您的重写规则出现语法错误。