You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅将oldsite.com重定向到newsite.com,排除/wp-login.php

解决特定URL重定向排除问题

没问题,我来帮你搞定这个重定向的排除需求!你的现有代码会把所有访问oldsite.com(包括www前缀)的请求都重定向到newsite.com,自然也包含了/wp-login.php,这就是导致404的原因。我们只需要在规则里加一个排除条件,让服务器忽略对/wp-login.php的重定向即可。

修改后的.htaccess代码

RewriteEngine On

# 排除/wp-login.php的重定向
RewriteCond %{REQUEST_URI} !^/wp-login.php$ [NC]
# 匹配oldsite.com和www.oldsite.com
RewriteCond %{HTTP_HOST} ^oldsite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com [NC]
# 执行重定向
RewriteRule ^(.*)$ http://newsite.com/$1 [L,R=301,NC]

代码解释

  • RewriteCond %{REQUEST_URI} !^/wp-login.php$ [NC]:这是关键的排除规则,!表示“不匹配”,^/wp-login.php$精确匹配请求路径为/wp-login.php的情况,NC表示不区分大小写(避免大小写差异导致的问题)。只有当请求路径不是/wp-login.php时,才会继续执行后面的重定向规则。
  • 后面的两个RewriteCond保持不变,负责匹配oldsite.com和www.oldsite.com这两个域名。
  • RewriteRule部分也和原来一致,把匹配到的请求路径重定向到newsite.com对应的路径,L表示这是最后一条规则,R=301表示永久重定向,NC同样是不区分大小写。

注意事项

  • 确保这个规则放在.htaccess文件的最顶部(如果有其他WordPress默认规则的话,要放在那些规则之前),避免被其他规则干扰。
  • 测试前记得清空浏览器缓存,因为301永久重定向会被浏览器缓存,可能导致你看不到修改后的效果。
  • 如果需要排除更多路径,可以复制第一条RewriteCond,修改路径即可,比如要排除/wp-admin的话,可以添加RewriteCond %{REQUEST_URI} !^/wp-admin/ [NC]。

内容的提问来源于stack exchange,提问作者joe.dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:58:43