0

現在、URL /results-details.php?mls_number=stringofnumbers のページがあります。

/results-details/stringofnumbers に書き直したい

ただし、基本的には元のページに解決したいと考えています。

また、サイト上のすべての URL を内部的に変更して、その URL を指すようにしています。したがって、2 つの書き換えルールがあります。

RewriteCond %{QUERY_STRING} mls_number=([0-9]+)$
RewriteRule (.*) /new-homes/results-details/%1? [R=301,C]
RewriteRule ^results-details/([0-9]+)$ results-details.php?mls_number=$1

2 番目のルールは、/results-details/stringofnumbers 形式の内部リンクを使用して単独で正常に機能しますが、最初のルールは 2 番目のルールに適切にチェーンされておらず、何が間違っているのかわかりません。

基本的に、そこにあるかもしれない古い URL へのリンクを保持しようとしますが、新しい URS を内部で使用し始めます。

提案?

4

1 に答える 1

0

書き換えエンジンがループするため、URI ではなく実際のリクエストと照合する必要があります。

RewriteCond %{THE_REQUEST} \ /new-homes/results-details\.php?mls_number=([0-9]+)
RewriteRule ^ /new-homes/results-details/%1? [L,R=301]

RewriteRule ^results-details/([0-9]+)$ results-details.php?mls_number=$1
于 2013-10-28T16:54:07.067 に答える