现在我在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]
我在页面上有错误
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
我如何做我需要的事情?
答案 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]