我有htaccess文件,它就在其中:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /project/
RewriteRule ^betNow/$ index.php?action=betNow [L]
RewriteRule ^(.*)/betNow/$ index.php?action=betNow [L]
RewriteRule ^(.*)/betNow/([0-9]+)$ index.php?action=betNow&id=$2 [L]
并且当我键入localhost / project / betNow /时它可以工作 但我无法弄清楚最后的规则 我试过localhost / project / betNow / 4 和localhost / project / betNow / id = 4 这不起作用。我究竟做错了什么?
提前致谢
答案 0 :(得分:2)
您已定义了RewriteBase /project/
,并且您的网站显然位于http://localhost/project/
- 因此当您致电http://localhost/project/betNow/
时,切换到重写规则的请求字符串只是betNow/
。
因此,以^(.*)/betNow
开头的规则将不匹配。你只需要:
RewriteRule ^betNow/$ index.php?action=betNow [L]
RewriteRule ^betNow/([0-9]+)$ index.php?action=betNow&id=$2 [L]
你可以使用
http://localhost/project/betNow/ --> index.php?action=betNow
http://localhost/project/betNow/4 --> index.php?action=betNow&id=4
答案 1 :(得分:1)
规则不应该是
RewriteEngine On
Options +FollowSymlinks
RewriteBase /project/
RewriteRule ^betNow/$ index.php?action=betNow [L]
RewriteRule ^betNow/([0-9]+)$ index.php?action=betNow&id=$2 [L]
您可能需要在重写规则中的两个/
字符之后放置^
答案 2 :(得分:1)
而不是localhost / project / betNow / id = 4尝试:localhost / project / betNow / id / 4
并使用:
RewriteRule ^(.*)/betNow/id/([0-9]+)$ index.php?action=betNow&id=$2 [L]