wordpress - wordpress 中的 .htaccess 没有实现从 www 到非 www 的重定向
问题描述
我正在研究 wordpress。我想应用从 www 到非 www 的重定向。网上有很多解决方案,但没有一个对我有用,可能是因为 wordpress 中的 htaccess 工作方式不同?
# BEGIN WordPress
# Директивы (строки) между `BEGIN WordPress` и `END WordPress`
# созданы автоматически и подлежат изменению только через фильтры WordPress.
# Сделанные вручную изменения между этими маркерами будут перезаписаны.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} ^www\.eepir\.oxem\.ru [NC]
RewriteRule ^(.*)$ http://eepir.oxem.ru/$1 [L,R=302]
</IfModule>
# END WordPress
这是我的代码,我实际上试图在# BEGIN WORDPRESS 之外发布规则但没有结果
谢谢你。
解决方案
RewriteCond %{HTTP_HOST} ^www\.eepir\.oxem\.ru [NC] RewriteRule ^(.*)$ http://eepir.oxem.ru/$1 [L,R=302]
您将这些“重定向”指令放在错误的位置。他们需要在文件的顶部,在该# BEGIN WordPress
部分之前。
通过将它们放在 WordPress 前端控制器之后,它们将永远不会被处理为静态资源以外的任何东西,因为请求已经被路由到/index.php
. 此时处理停止。
您永远不应该手动编辑# BEGIN WordPress
和# END WordPress
注释标记之间的代码,因为此代码块由 WordPress 本身维护,您的更改可能会被覆盖。
...但是我昨天在你的问题中涵盖了所有这些?
htaccess 重定向 301 有效,但 RewriteRule 无效
您还需要将 WordPress 本身配置为使用非 www 主机名。IE。WP_HOME
和WP_SITEURL
- 都应该在仪表板中设置。
可能是因为 wordpress 中的 htaccess 工作方式不同
.htaccess
与 WordPress 的工作方式相同。.htaccess
与WordPress本身并没有太大关系。
UDPATE:似乎www.eepir.oxem.ru
没有配置 DNS,因此请求甚至没有到达您的服务器(用于发生重定向)。您需要在 DNS 中配置适当的A
记录www.eepir.oxem.ru
,就像您所做的那样,eepir.oxem.ru
并将您的服务器配置为接受请求www.eepir.oxem.ru
(如果还没有)。然后你的重定向应该工作。
推荐阅读
- javascript - 传单窗格 style.pointerEvents = none
- kotlin - 计时器:不每隔 N 秒定期启动我的方法
- java - 使用 Java 或 Python 捕获行为生物识别工具的按键时间?
- c# - 在移位和滚动窗口后填充第一个缺失的空元素
- python - Python:此代码有任何问题:使用显式等待一个 web 元素:
- python - 来自具有多个值的数据帧字符串列的一种热编码
- c# - 以域用户身份连接时“HTTP 请求未经授权...”
- vim - 使用变量/正则表达式进行智能文本替换的 vim 脚本
- discord.py - Discord.py onmessage 角色分配问题
- sql - 在数据库的所有列和所有表中搜索一个值