0

私は次のURLを持っています:

http://site/testing/mypage.php?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=US&Price=

変数国に何かがある場合、次のようにURLを変更することを確認するhtaccessがあります。

http://site/testing/mypage.php/TimeshareForSale/US

私のhtaccessファイルは以下です:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(testing/mypage\.php)\?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=([^&]+)&Price= [NC]

RewriteRule ^ /%1/TimeshareForSale/%2? [R=301,L,NE]

RewriteRule ^(testing/mypage.php)/TimeshareForSale/([^/]+)/?$ /$1?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=$2&Price= [L,NC,QSA]

これは完全に正常に動作します..そして、私が述べた上記のURLにリダイレクトしますが、私のphpファイルでは、htaccessを削除すると$_GET ['Country']である変数が機能しなくなります。

4

2 に答える 2

0

すべての条件で timeshare/us を使用することはできないため、すべてのタイプのリンクを変更するだけで済みます。

于 2013-10-13T20:56:18.023 に答える
0

「私は次の URL を持っています:」

「次のように URL を変更します。」

おっ、おっ、おっ!.htaccess を逆に書くという一般的な罠に陥っている可能性があります。

http://site/testing/mypage.php/TimeshareForSale/US

URLの「検索エンジンに適した」外部バージョンです。最初に (.htaccess で) に変換しないと、PHP コードでは機能しません。

http://site/testing/mypage.php?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=US&Price=

これは .htaccess URL の書き換えの有無にかかわらず機能しますが、ユーザーをそれから保護しようとしていると思います。.htaccess は、最初のフォームを 2 番目のフォーム (インバウンド) に変換するためのものであり、その逆 (アウトバウンド) ではありません。

さて、あなたはどちらの方向に行こうとしていますか?

于 2013-10-09T19:02:48.480 に答える