-1

私は次のコードを持っています、

details.php は正常に動作しています。しかし、gotolink.phpにアクセスすると、 details.phpページに再び誘導され、404 エラーが表示されます。予期しない URL です..

RewriteEngine On

RewriteRule ^([a-zA-Z0-9-/]+)$ uk/details.php?pid=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ uk/details.php?pid=$1

RewriteRule ^([a-zA-Z0-9-/]+)$ gotolink/gotolink.php?id=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ gotolink/gotolink.php?id=$1

助けてください!

4

2 に答える 2

2

書き換え条件は同じなので、最初はすべてのリクエストをキャッチし、gotolink.php には到達しません。

于 2012-07-25T19:08:50.270 に答える
2

details.phpとの正規表現はgotolink.php同一です。http://domain.com/abc123/uk/details.php?pid=abc123/gotolink/gotolink.php?id=abc123/abc123

RewriteRule ^([a-zA-Z0-9-/]+)$ uk/details.php?pid=$1

RewriteRule ^([a-zA-Z0-9-/]+)$ gotolink/gotolink.php?id=$1

details.php が最初にあるという事実が、すべてが details.php に書き換えられる理由です。それらを入れ替えると、すべてが gotolink.php に書き換えられます。これらの正規表現が異なる方法で一致するようにする必要があります。例:

RewriteRule ^d/([a-zA-Z0-9-/]+)$ uk/details.php?pid=$1

RewriteRule ^g/([a-zA-Z0-9-/]+)$ gotolink/gotolink.php?id=$1

では、とに行き/d/abc123ます。または、詳細 pid が常に文字で gotolink id が常に数字か何かである場合は、それらを分離できます。/uk/details.php?pid=abc123/g/abc123/gotolink/gotolink.php?id=abc123

RewriteRule ^([a-zA-Z-/]+)$ uk/details.php?pid=$1

RewriteRule ^([0-9-/]+)$ gotolink/gotolink.php?id=$1
于 2012-07-25T19:09:02.370 に答える