对于熟悉mod_rewrite的人来说,这可能是一个非常基本的问题,但我现在不是这样:
我正在尝试将网址从baseurl/school/<name>
重定向到baseurl/school/result.php?name=<name>
。我的.htaccess目前看起来像这样:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^school/([^/]+)/?$ school/result.php?name=$1 [NC]
我向baseurl/school/aoeu
提出了测试请求。请求被重写,但result.php脚本将$_GET['name']
的值报告为&#34; result.php&#34;,而不是&#34; aoeu&#34;。我尝试将GET
变量更改为&#34; name&#34;但问题仍然存在。
答案 0 :(得分:1)
您需要添加一些条件以防止循环。重写引擎继续运行规则,直到生成的URI停止更改。尝试:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^school/([^/]+)/?$ school/result.php?name=$1 [NC]