url rewrite .htaccess:用相同的规则重写2个页面

时间:2013-10-23 00:56:13

标签: .htaccess mod-rewrite

所以,我想要你的帮助 我试图以这种方式重写2页

www.mydomain.com/page1.php?id=52

www.mydomain.com/52/

和另一个page2.php很像这样 www.mydomain.com/page2/id

我做了很多研究,我找到了这个规则

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ page1.php?id=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ users.php?id=$1

但是当我测试这条规则时 如果我在网址www.mydomain.com/page2/id中播放它很好但我无法获取id变量抛出php($_GET) 如果我从网址(www.mydomain.com/id)中删除了page2,它就给了我page1

所以,有可能这样做吗?

1 个答案:

答案 0 :(得分:0)

  

所以,有可能这样做吗?

你的模式看起来完全一样,除了有一条尾随斜线,一条斜线与另一条没有斜杠。

所以无论这个“id”是什么,如果它没有尾部斜杠,它匹配第一个规则^([a-zA-Z0-9_-]+)$,但如果它有一个尾部斜杠,则匹配第二个规则^([a-zA-Z0-9_-]+)/$ 。这意味着:

www.mydomain.com/52/

重写为:users.php?id=52

www.mydomain.com/52

重写为:page1.php?id=52

现在,如果你想这样做,它既适用于带或不带尾部斜杠,它都是不可能的。 52场比赛之间没有区别。例如,如果您有此URL:

www.mydomain.com/1234

那是page1.php吗?还是users.php?两种模式完全相同,因此第一条规则始终匹配,第二条规则始终被忽略。