[英]ID not being passed in RewriteRule
我在使用.htaccess时遇到问题。重写规则如下。
RewriteRule ^user/([a-z]+)/?$ user.php?id=$1
传入的网址: http : //abhimanyu.localhost.com/user/home/其重定向到user.php,但我没有获取ID。 例如$ id = $ _GET ['id'];
知道为什么吗?
仅供参考
127.0.0.1 - - [08/May/2011:23:38:35 +051800] [abhimanyu.localhost.com/sid#b8b34860][rid#b8d34d28/subreq]
(1) [perdir
/home/administrator/public_html/abhimanyu/]
pass through
/home/administrator/public_html/abhimanyu/user.php
127.0.0.1 - - [08/May/2011:23:38:35 +051800] [abhimanyu.localhost.com/sid#b8b34860][rid#b8d21ce0/initial]
(3) [perdir
/home/administrator/public_html/abhimanyu/]
add path info postfix:
/home/administrator/public_html/abhimanyu/user.php
-> /home/administrator/public_html/abhimanyu/user.php/home
127.0.0.1 - - [08/May/2011:23:38:35 +051800] [abhimanyu.localhost.com/sid#b8b34860][rid#b8d21ce0/initial]
(3) [perdir
/home/administrator/public_html/abhimanyu/]
strip per-dir prefix:
/home/administrator/public_html/abhimanyu/user.php/home
-> user.php/home
127.0.0.1 - - [08/May/2011:23:38:35 +051800] [abhimanyu.localhost.com/sid#b8b34860][rid#b8d21ce0/initial]
(3) [perdir
/home/administrator/public_html/abhimanyu/]
applying pattern '^user/([a-z]+)/?$'
to uri 'user.php/home'
127.0.0.1 - - [08/May/2011:23:38:35 +051800] [abhimanyu.localhost.com/sid#b8b34860][rid#b8d21ce0/initial]
(1) [perdir
/home/administrator/public_html/abhimanyu/]
pass through
/home/administrator/public_html/abhimanyu/user.php
127.0.0.1 - - [08/May/2011:23:38:35 +051800] [abhimanyu.localhost.com/sid#b8b34860][rid#b8d2cd08/subreq]
(1) [perdir
/home/administrator/public_html/abhimanyu/]
pass through
/home/administrator/public_html/abhimanyu/home
尝试这个:
RewriteRule ^user/([a-z]+)$ user.php?id=$1 [NC]
我不知道您是要在/user/
之后还是在/user/home
之后立即捕获字符串。 如果您需要同时捕获两者,请尝试以下操作:
^user/([az]+)/(.+)$
您可以使用$1
访问用户之后的第一个字符串,并使用$2
访问第二个字符串。
尝试禁用MultiViews
选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.