0

だから私の書き換えルールはリクエストを送信します

www.cruiseandmaritime.com/cruises/French-Leave.php to

www.cruiseandmaritime.com/cruise_details_by_name.php?id=French-Leave

正常に動作します

RewriteRule ^cruises/([a-zA-Z0-9-&]+).php?$ cruise_details_by_name.php?id=$1    [NC,L]  # Handle requests for all cruises

ただし、一部のクルーズでは、タイトルにアンパサンドが使用されています...(英国および北方諸島)

www.cruiseandmaritime.com/cruises/British-&-Northern-Isles.php

クエリは名前で巡航を検索し、get変数に渡されるビットは「British」だけなので、これは機能しません。&とno&の後には他に何もありません。

だから私は混乱しています...

リッチ :)

4

3 に答える 3

2
www.cruiseandmaritime.com/cruises/British-&-Northern-Isles.php

は有効なURLではないため、は有効なURLでは&ありません。そこから、ゴミが入っただけの場合はゴミが出ます:)

URLのアンパサンドは%26

于 2012-06-18T14:04:40.090 に答える
0

あなたの正規表現は奇妙です。どういう-&意味だと思いますか?

私はそれがこのような何かであるべきだとは思わない:

[a-zA-Z0-9\&]
于 2012-06-18T14:04:57.977 に答える
0

私はこれをhttp://martinmelin.se/rewrite-rule-tester/で試しましたが、理由は正確にはわかりませんが、機能しているルールは次のとおりです。

([&a-zA-Z0-9-]+)
于 2012-06-18T14:11:20.243 に答える