我使用以下重写代码来美化网址http://localhost/about.php?about_key=test%20tester
到http://localhost/about/test%20tester
代码
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
RewriteRule ^about/(\w+)$ about_user.php?about_key=$1
但是我找到了一个找不到对象的错误,一段时间后我发现URL中的%20
是问题所在。所以我的问题是,我该如何做到这一点?
答案 0 :(得分:0)
在URI与重写规则匹配之前,像%20
这样的URI中的东西会被解码。这意味着%20
会变成一个空格,而你的正则表达式\w
不会与空格相匹配。尝试将正则表达式更改为:
RewriteRule ^about/([\w\s]+)$ about_user.php?about_key=$1