ルールに問題があります。私は両方を入れましたが、最初のものしか機能しません。
情報が異なる2つのファイルがあります。
RewriteRule ^([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ programa.php?programa=$1 [NC,L]
ルールに問題があります。私は両方を入れましたが、最初のものしか機能しません。
情報が異なる2つのファイルがあります。
RewriteRule ^([A-Za-z0-9-]+)/?$ tour.php?tour=$1 [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ programa.php?programa=$1 [NC,L]
一致させるために使用するパターンがまったく同じであるため、最初のもののみが機能します: ^([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
ます。