& 符号常用于查询字符串。查询字符串是 URL 末尾的一个或多个变量,页面用于呈现内容、跟踪信息等。查询字符串通常如下所示:
http://www.website.com/index.php?variable=1&variable=2
请注意 URL 中文件扩展名之后的第一个特殊字符是 ?。这指定了查询字符串的开始。
在您的示例中,没有?,因此没有启动查询字符串。根据RFC 1738 的说法,和号不是有效的 URL 字符,除非用于指定用途(将查询字符串中的变量链接在一起),因此您提供的链接在技术上是无效的。
解决这种无效性的方法以及可能发生的情况是重写。重写通知服务器根据模式或匹配显示特定文件。例如,可能适用于您的示例的 .htaccess 重写规则可能是:
RewriteEngine on
RewriteRule ^/?B&Q-(.*)$ /scripts/b-q.php?variable=$1 [NC,L]
此规则将查找以 http://www.indeed.co.uk/B&Q- 开头的任何 URL,并改为显示 http://www.indeed.co.uk/scripts/b-q.php?variable=jobs 的内容。
有关 Apache 重写规则的更多信息,请查看他们的 official documentation。
最后,我建议不要在 URL 中使用与号,即使在进行重写时也是如此,除非它们是查询字符串的一部分。 URL 中的 & 符号的目的是在查询字符串中将变量串在一起。出于该目的使用它是不正确的,将来可能会引起混乱。