【问题标题】:htaccess non-www does not redirecthtaccess 非 www 不重定向
【发布时间】:2021-12-24 04:01:40
【问题描述】:

我有一个网站(由托管)强制为非 www。 我可以访问 htaccess 文件,并且正在尝试将我的一些页面重定向到另一个域。 www 有效,非 www (这是当前的)它没有重定向。 这是我在 htaccess 中的内容

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Redirect 301 /my-slug-here https://anotherdomain.example/some-slug-here/
</IfModule>

【问题讨论】:

  • “强制到非 www(由托管)” - 如何? “万维网有效,非万维网(即当前万维网)没有重定向。” - 这与我希望你说的相反。而Redirect 就是这样一种重定向?这里没有太多事情要做......

标签: .htaccess redirect


【解决方案1】:

不建议同时使用来自mod_aliasRedirect 和来自mod_rewriteRewriteRule。通过使用RewriteRule 实施您的规则并将其置于您的前端控制器规则之上,您将获得更好的结果。

我不建议将非 WordPress 规则放入 BEGIN WordPress 部分,因为 WordPress 可能会在升级期间覆盖整个部分。我会将您的重定向规则放在 WordPress 部分之上,即使这意味着使用第二个 RewriteEngine On

RewriteEngine On
RewriteRule ^/?my-slug-here https://anotherdomain.example/some-slug-here/ [R=301,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

【讨论】:

  • 虽然 OPs 规则应该仍然“有效”IMO。如果“www 有效,而非 www 无效”,并且“强制为非 www(由托管)”有点可疑,看起来还有其他事情发生。
  • 感谢您的错误修复。把它放在答案中。我认为配音配音配音作品意味着它仍然重定向到非配音配音配音,也许还有其他事情发生
  • 您不需要在第一条规则之前重复RewriteEngine On 指令。事实上,这样做实际上有点误导......(即使它看起来更合乎逻辑并且每个人都这样做)因为它是“获胜”并控制整个文件的最后一个实例。将第一个实例设置为 RewriteEngine Off 将无效,因为稍后在文件中将其设置为 On
  • 哇!我不知道。我一直认为这需要放在第一位。
  • 感谢您提供非 wordpress 提示。这有很大帮助。现在它可以工作了。
猜你喜欢
  • 2019-01-29
  • 2018-05-26
  • 2011-04-12
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 2012-11-16
  • 1970-01-01
相关资源
最近更新 更多