301 htaccess 目标中有 %20 URL
301 htaccess with %20 in target URL
我需要管理查询字符串中的一些 URL。登陆 URL 包含 space (%20)。
我写了这个:
RewriteCond %{QUERY_STRING} ^orderby=([0-9]+)&pagenumber=([0-9]+)$
RewriteRule ^[OLD-SLUG]$ https://www.domain-site.it/Content/Images/uploaded/[TEXT-01]%20[TEXT-02]%20[TEXT-03].pdf? [R=301,L]
但结果是 URL 重定向到:
https://www.domain-site.it/Content/Images/uploaded/[TEXT-01]50[TEXT-02]50[TEXT-03].pdf
怎么了?
谢谢大家
%N
和(0 <= N <= 9)
是对前面RewriteCond的捕获组进行反向引用的语法。
所以 %2
指的是您用 pagenumber=([0-9]+)
捕获的内容。
您需要使用反斜杠对百分号字符进行转义,因为它的意思是字面意思。
RewriteRule ^[OLD-SLUG]$ .../[TEXT-01]\%20[TEXT-02]\%20[TEXT-03].pdf? [R=301,L]
我是这样解决的:
RewriteCond %{THE_REQUEST} ^(\S*)\s/(\S*) [NC]
RewriteCond %{QUERY_STRING} ^orderby=([0-9]+)&pagenumber=([0-9]+)$
RewriteRule ^old-slug$ https://www.domain-site.it/Content/Images/uploaded/[TEXT-01]\%20[TEXT-02]\%20[TEXT-03].pdf? [R=301,L,NE]
谢谢大家!
我需要管理查询字符串中的一些 URL。登陆 URL 包含 space (%20)。 我写了这个:
RewriteCond %{QUERY_STRING} ^orderby=([0-9]+)&pagenumber=([0-9]+)$
RewriteRule ^[OLD-SLUG]$ https://www.domain-site.it/Content/Images/uploaded/[TEXT-01]%20[TEXT-02]%20[TEXT-03].pdf? [R=301,L]
但结果是 URL 重定向到:
https://www.domain-site.it/Content/Images/uploaded/[TEXT-01]50[TEXT-02]50[TEXT-03].pdf
怎么了?
谢谢大家
%N
和(0 <= N <= 9)
是对前面RewriteCond的捕获组进行反向引用的语法。
所以 %2
指的是您用 pagenumber=([0-9]+)
捕获的内容。
您需要使用反斜杠对百分号字符进行转义,因为它的意思是字面意思。
RewriteRule ^[OLD-SLUG]$ .../[TEXT-01]\%20[TEXT-02]\%20[TEXT-03].pdf? [R=301,L]
我是这样解决的:
RewriteCond %{THE_REQUEST} ^(\S*)\s/(\S*) [NC]
RewriteCond %{QUERY_STRING} ^orderby=([0-9]+)&pagenumber=([0-9]+)$
RewriteRule ^old-slug$ https://www.domain-site.it/Content/Images/uploaded/[TEXT-01]\%20[TEXT-02]\%20[TEXT-03].pdf? [R=301,L,NE]
谢谢大家!