【发布时间】:2021-01-03 03:26:09
【问题描述】:
我的网站使用逗号分隔参数中的一些坐标,例如?coords=38.88,-77.03。我现在发现问题,因为 , 是 url 保留字符。该问题似乎仅限于链接与 Facebook 共享并且 Facebook 将其更改为 ?coords=38.88%2C-77.03 时。
我想长期修复它,但我需要对已共享的现有链接进行临时修复。如果人们要单击 Facebook 中的链接,我想要一个 .htaccess 规则将其更改为使用逗号。
当逗号后面有空格时,我已经有了类似的规则:
RewriteCond %{QUERY_STRING} (.*coords=-?\d{1,2}(?:\.\d+)?),(?:\s+|\%20|\+)(-?\d{1,3}(?:\.\d+)?,?.*) [NC]
RewriteRule ^ %{REQUEST_URI}?%1,%2 [L,NE,R=301]
我尝试将其更改为:
RewriteCond %{QUERY_STRING} (.*coords=-?\d{1,2}(?:\.\d+)?)(,|\%2C)(?:\s+|\%20|\+)(-?\d{1,3}(?:\.\d+)?,?.*) [NC]
RewriteRule ^ %{REQUEST_URI}?%1,%3 [L,NE,R=301]
我清除了我的缓存,甚至尝试将坐标编号更改为新的,但我无法让它重定向。我做错了什么,我该如何解决?
【问题讨论】:
标签: regex apache .htaccess mod-rewrite