1

だから、私はあなたの助けが欲しいので、そのように2ページを書き直そうとしている.

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

www.mydomain.com/52/

そして、この www.mydomain.com/page2/id によく似た別の page2.php

私は非常に多くの研究を行い、このルールを見つけました

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

しかし、私がこのルールをテストしたとき、私がURLwww.mydomain.com/page2/id で書いた場合、それはうまく機能しますが、id変数を取得できません.php( )を$_GETURLから削除すると()www.mydomain.com/id

それで、それは可能ですか?

4

1 に答える 1

0

それで、それは可能ですか?

パターンは、一方の末尾にスラッシュがあり、もう一方の末尾にスラッシュがないことを除いて、まったく同じに見えます。

したがって、この「id」が何で^([a-zA-Z0-9_-]+)$あれ、末尾にスラッシュがない場合は最初のルールに一致^([a-zA-Z0-9_-]+)/$しますが、末尾にスラッシュがある場合は 2 番目のルールに一致します。つまり、次のことを意味します。

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?どちらのパターンもまったく同じであるため、最初のルールは常に一致し、2 番目のルールは常に無視されます。

于 2013-10-23T02:22:50.013 に答える