0

所以我的重写规则发送请求

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 变量的唯一位是“British”,在 & 和没有 & 之后没有其他内容

所以我很困惑...

富有的 :)

4

3 回答 3

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

不是一个有效的 URL,因为&它不应该在那里。从那里开始,它只是一个垃圾箱,就是垃圾箱:)

url 中的 & 符号应该是%26

于 2012-06-18T14:04:40.090 回答
0

我在http://martinmelin.se/rewrite-rule-tester/上尝试了这个并且不完全知道为什么,但是规则是有效的:

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

你的正则表达式很奇怪。你猜-&会是什么意思?

我不认为它应该是这样的:

[a-zA-Z0-9\&]
于 2012-06-18T14:04:57.977 回答