.htaccess 仅将特定的 UTF-8 子域 U. R. L.s 重定向到其子域
.htaccess Redirect Only Specific UTF-8 SubDomain U. R. L.s to Its SubDomain
我有:
https://Restoran.Grupacija.com/?ćumur
需要重定向到:
https://Restoran.Grupacija.com/
该指令位于根文件夹的 .htaccess 文件中,但它不起作用:
Redirect 301 "^/%3Fćumur" https://Restoran.Grupacija.com
这个我也试过了,也没用:
Redirect 301 "^/%3F%C4%87umur" https://Restoran.Grupacija.com
我的 .htaccess 文件已经是UTF-8。
mod_alias Redirect
指令只匹配 URL-path ,特别是排除了查询字符串。 (但是,Redirect
指令也不使用正则表达式匹配,而是使用简单的 prefix-matching。)
要匹配您需要使用 mod_rewrite 的查询字符串,并匹配 RewriteCond
指令中的 QUERY_STRING
服务器变量。
请注意,browser/user-agent 将 URL 将 HTTP 请求中的 ć
编码为 %C4%87
,并且 QUERY_STRING
服务器变量未解码,所以我们需要匹配编码请求。严格来说,%C4
和 %c4
都是有效的编码。
我假设您不需要显式检查请求的主机名,除非此查询字符串在您的服务器收到的另一个主机名上有效?
例如,要按要求执行重定向,以下内容需要在任何现有重写之前靠近 .htaccess
文件的顶部。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%[cC]4%87umur$
RewriteRule ^$ / [QSD,R=301,L]
QSD
(查询字符串丢弃)标志从重定向响应中删除查询字符串。
首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。
(如果 .htaccess
文件中已经出现,则无需重复 RewriteEngine
指令。)
我有:
https://Restoran.Grupacija.com/?ćumur
需要重定向到:
https://Restoran.Grupacija.com/
该指令位于根文件夹的 .htaccess 文件中,但它不起作用:
Redirect 301 "^/%3Fćumur" https://Restoran.Grupacija.com
这个我也试过了,也没用:
Redirect 301 "^/%3F%C4%87umur" https://Restoran.Grupacija.com
我的 .htaccess 文件已经是UTF-8。
mod_alias Redirect
指令只匹配 URL-path ,特别是排除了查询字符串。 (但是,Redirect
指令也不使用正则表达式匹配,而是使用简单的 prefix-matching。)
要匹配您需要使用 mod_rewrite 的查询字符串,并匹配 RewriteCond
指令中的 QUERY_STRING
服务器变量。
请注意,browser/user-agent 将 URL 将 HTTP 请求中的 ć
编码为 %C4%87
,并且 QUERY_STRING
服务器变量未解码,所以我们需要匹配编码请求。严格来说,%C4
和 %c4
都是有效的编码。
我假设您不需要显式检查请求的主机名,除非此查询字符串在您的服务器收到的另一个主机名上有效?
例如,要按要求执行重定向,以下内容需要在任何现有重写之前靠近 .htaccess
文件的顶部。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%[cC]4%87umur$
RewriteRule ^$ / [QSD,R=301,L]
QSD
(查询字符串丢弃)标志从重定向响应中删除查询字符串。
首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。
(如果 .htaccess
文件中已经出现,则无需重复 RewriteEngine
指令。)