使用 Apache/2.4.54 (Win64)
我被要求从旧域重写为新域,如下所示
- 从
https://oldtest.mydomain.com/company/customerpage/#/customer/<getThisNumber>/something
- 到
https://newtest.mydomain.com/company/something/customer/<getThisNumber>
使用正则表达式获取号码并将其传递给新号码,然后使用 [L,R=301] 进行重定向,这本来可以很好。
我知道主题标签是一个片段标识符,并且主题标签后面的字符串不能使用 mod_rewrite 处理,但我希望主题标签本身会显示出来。所以我尝试过像这样匹配的规则
所以我尝试过的是(片段)
<LocationMatch "^\/company\/customerPage\/">
LogLevel alert rewrite:trace3
RewriteCond %{QUERY_STRING} ([0-9]*)\/something$
RewriteRule ^(.*)$ "https://newtest.mydomain.com/company/something/customer/$1" [L,R=301]
这不起作用,问题是我的代码中是否有一个小问题,或者我也意识到这可能存在不可行的风险......但希望不是。
https://www.w3.org/Addressing/URL/4_URI_Recommentations.html
那里暗示的意思是
主题标签
#
不是 URI 的一部分。并且仅将 URI 发送到 Web 服务器。
哈希和片段标识符不会在请求中发送到 Web 服务器。
服务器端根本没有任何东西可供 Apache 和/或 mod_rewrite 处理。
您需要通过运行客户端的东西来解决这个问题;就像 javascript 一样,它在浏览器窗口中运行。