htaccess 变量 301 从 URL 重定向(但结构奇怪)

htaccess variable 301 redirect from URL (but with odd structure)

所以我正在做网站设计,URLS 正在改变。但是,旧站点的结构非常奇怪 URL,我发现很难重定向。

基本上,只需要从 URL 中获取变量,然后将其传递给另一个页面,然后进行重定向。但是,这是我的问题。旧的 url 实际上不是查询字符串。

/rental/house.html&ID=405313

请注意它是如何缺少正常的 ? 而不是 & 的?奇怪吧?

所以目前,我有

RewriteCond %{QUERY_STRING} (^|&)ID=([^&]+)($|&)
RewriteRule ^rental/house\.html$ /newredirect.cfm?id=%1 [L,R=301]

但是,这只有在我有 ?在url,比如....

/rental/house.html?ID=405313

此外,它没有传递变量,所以我显然也有问题。

非常感谢任何帮助!谢谢!

?后面的字符串是查询字符串。在这种情况下,您的请求 URI 是 /rental/house.html&ID=405313,您可以检查请求 URI。 %1 是对 ([0-9]+) 的反向引用。

RewriteCond %{REQUEST_URI} &ID=([0-9]+)
RewriteRule ^/?rental/house.html /newredirect.cfm?id=%1 [L,R=301]