所以我的重写规则发送
请求www.cruiseandmaritime.com/cruises/French-Leave.php到
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变量的唯一位是“英国”在&之后没有别的东西。没有&
所以我很困惑......
Rich :)
答案 0 :(得分:2)
www.cruiseandmaritime.com/cruises/British-&-Northern-Isles.php
不是有效的网址,因为&
不应该在那里。从那里只有一个垃圾箱是垃圾:))
网址中的&符号应为%26
答案 1 :(得分:0)
你的正则表达式很奇怪。您认为-&
意味着什么?
我认为应该是这样的事情:
[a-zA-Z0-9\&]
答案 2 :(得分:0)
我在http://martinmelin.se/rewrite-rule-tester/上尝试此操作并且不知道为什么,但是有效的规则:
([&a-zA-Z0-9-]+)