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

.htaccess htaccess:使用相同的规则重写2个页面,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,所以,我需要你的帮助 我正试图用这种方式重写两页 www.mydomain.com/page1.php?id=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 但当我测试这个规则时 如果我在ur

所以,我需要你的帮助 我正试图用这种方式重写两页

www.mydomain.com/page1.php?id=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
但当我测试这个规则时 如果我在url www.mydomain.com/page2/id中工作,它会很好地发挥作用,但我无法获得id变量throw php$\u get 如果我从url www.mydomain.com/id中删除page2,它会给我page1

那么,有可能做到这一点吗

那么,有可能做到这一点吗

您的模式看起来完全相同,只是有一个带有一个的尾部斜杠,而另一个没有尾部斜杠

因此,不管这个id是什么,如果它没有尾随斜杠,它将匹配第一条规则^[a-zA-Z0-9_-]+$,但是如果它有尾随斜杠,它将匹配第二条规则^[a-zA-Z0-9_-]+/$。这意味着:

www.mydomain.com/52/
重写为:users.php?id=52,并且

重写为:page1.php?id=52

现在,如果你想让它在有或没有尾随斜杠的情况下都能工作,那是不可能的。52场比赛没有什么不同。例如,如果您有此URL:

www.mydomain.com/1234

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

好的……我现在明白了……有没有办法解决这个问题?例如,我可以将这两个页面中的一个放在一个文件夹中并应用于它特定的.htaccess吗?否则有什么想法吗?对不起,我对url重写一无所知:非常感谢Jon Lin的回答..我很感激it@ManarMiroo每个文件夹1个htaccess,您不能将其仅应用于1页。唯一的修复方法是使URL看起来彼此不同。
www.mydomain.com/52
www.mydomain.com/1234