.ht访问错误发生


.htaccess error occurs

>当我在.htaccess中使用重写规则时,似乎发生了内部服务器错误

我的.htaccess代码如下:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)'.$ $1.php [nc]
RewriteRule  ^([a-z][a-zA-Z0-9_-]+)'.htm$ inner.php?url=$1

但是我收到服务器错误。 错误消息如下:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请与服务器管理员联系,admin@localhost并告知他们错误发生的时间,以及您可能执行的任何可能导致错误的操作。

有关此错误的详细信息,请参阅服务器错误日志。

RewriteRule ^(.*).$ $1.php [nc]
RewriteRule ^([a-z][a-zA-Z0-9_-]+).htm$ inner.php?url=$1

你能解释一下,你打算用第一条规则实现什么吗?

现在,它会将任何文件重写为一个命名相同的文件(最后一个字符除外)并使用".php"扩展:

abcdefg变成了abcdef.php <这就是你想要的吗?>

真正的问题是这种情况一遍又一遍地发生:第一次重写后,第二次调用 htaccess,并且规则再次适用,因为没有限制重写的条件。

试试这个:

RewriteCond %{REQUEST_URI} !'.php$    # if the uri does not end with ".php"
RewriteRule ^(.*).$ $1.php [nc,L]     # do not apply another rule after this
RewriteRule ^([a-z][a-zA-Z0-9_-]+).htm$ inner.php?url=$1

问候斯特凡