字符串的.htaccess规则

时间:2014-11-06 17:26:07

标签: .htaccess

现在我在htaccess中有这样的规则。如您所见,它从/ sjdfsd重定向到/hello.php?query=sjdfsd sjdfsd - 是一个字符串,可以包含0-9,a-z,&,=和其他符号。

RewriteEngine on
RewriteCond %{REQUEST_URI} \/([0-9a-z\&\=\.\[\]\{\}\%\-]+)$ [NC]
RewriteRule ^(.*) /hello.php?query=%1 [L]

我需要再添加一个symblol“_”,但是当我像这样更新第二行时

RewriteCond %{REQUEST_URI} \/([0-9a-z\&\=\.\[\]\{\}\%\-\_]+)$ [NC]

我在页面上有错误

内部服务器错误

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

我如何做我需要的事情?

3 个答案:

答案 0 :(得分:0)

您可以简单地将规则简化为:

RewriteEngine on

# If the request is not for a valid file/directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /hello.php?query=$1 [L,QSA]

答案 1 :(得分:0)

在这种情况下,我认为你不必使用\。

 RewriteCond %{REQUEST_URI} \/([0-9a-z\&\=\.\[\]\{\}\%\-_]+)$ [NC]

我不知道那可能是错误......

答案 2 :(得分:0)

解决:

RewriteCond %{REQUEST_URI} \/([a-z0-9_[\]{}%&=-]+)$ [NC]