.htaccess 是否从重写规则中排除插件域?

zc0qhyus  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(137)

我正在尝试将文件夹www.example.com中的所有文件重定向mydomain.com/es到mydomain.com/此操作使用

RedirectMatch 302 ^/es/ /index.php

然而,这也是重定向文件夹es/在我的插件域之一。所以myaddondomain.com/es/将mydomain.com/
我该如何阻止这种情况?我在论坛上搜索了一下,发现人们发布的这些规则,但都不起作用

RewriteRule ^myaddondomain.com/?$ - [L]

RewriteCond %{REQUEST_URI} !^/myaddondomain.com/$
fykwrbwg

fykwrbwg1#

RedirectMatch 302 ^/es/ /index.php

如果这只适用于特定域(即 hostname),则需要改用mod_rewrite(RewriteRule/RewriteCond),并在 condition 中检查HTTP_HOST。例如:

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com [NC]
RewriteRule ^es/ /index.php [R,L]

请注意,directory 上下文中RewriteRulepattern(第一个参数)匹配的URL路径不以斜杠开头。
这也允许选择www子网域。如果不需要,请移除 CondPattern 中的(www\.)?
请注意,这将重定向到/index.php,而不是严格意义上的mydomain.com/,如您在描述中所述。也许您应该重定向到/

  • 旁白:* 就SEO而言,多对一的主页重定向可能会被视为软404。
  • 旁白 *

我在论坛里搜索了一下,发现有人发布了这些规则,但都不管用

RewriteRule ^myaddondomain.com/?$ - [L]

RewriteCond %{REQUEST_URI} !^/myaddondomain.com/$

我会很好奇 * 在 * 你看到这些(在StackOverflow?),因为他们显然是不正确的,在这种情况下。
RewriteRulepattern(第一个规则)仅与URL路径匹配,因此第一个规则永远不会匹配。
同样,REQUEST_URI服务器变量(第二个规则)仅包含URL路径,因此“否定”condition 将始终成功。

相关问题