使用htaccess的呼叫页面

时间:2012-01-21 23:55:21

标签: php .htaccess

我有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 这不起作用。我究竟做错了什么?

提前致谢

3 个答案:

答案 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]