0

ルールに問題があります。私は両方を入れましたが、最初のものしか機能しません。

情報が異なる2つのファイルがあります。

RewriteRule ^([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ programa.php?programa=$1 [NC,L]
4

1 に答える 1

0

一致させるために使用するパターンがまったく同じであるため、最初のもののみが機能します: ^([A-Za-z0-9-]+)/?$. tour.phpへの影響とprograma.phpへの影響を分離するには、別の何かが必要です。現在、誰かhttp://youdomain.com/abcdefg/がブラウザの URL アドレス バーに入力すると、URI/abcdefg/がサーバーに送信されます。最初のルール:

RewriteRule ^([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L]

/abcdefg/はパターン^([A-Za-z0-9-]+)/?$に一致し、 に書き換えられるため一致します/tour.php?tour=abcdefgそれがprograma.phpを意味していたとしたらどうでしょうか? すべてが最初のルールのパターンによってキャプチャされるため、2 番目のルールに到達することはありません。2つを区別するために何か他のものを追加する必要があります。たとえば、追加のパス メモを追加します。

RewriteRule ^tour/([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L]
RewriteRule ^programa/([A-Za-z0-9-]+)/?$ programa.php?programa=$1 [NC,L]

これは、 に行くとhttp://youdomain.com/programa/abcdefg/リクエストが に書き換えられ、/programa.php?programa=abcdefgに行くとリクエストが に書き換えられることを意味http://youdomain.com/tour/abcdefg//tour.php?tour=abcdefgます。

于 2013-03-20T22:56:37.607 に答える