我尝试过使用各种正则表达式(^/$
、、)通过 重写/代理 WordPress 网站的主页。据记录,我已加载适当的模块来实现这一点,并且可以使用特定的正则表达式对其他路径执行此操作,但就是不能对主页执行此操作。其他答案已指出^index.php$
并可行,但对我来说不起作用。如何才能仅针对主页进行定位?^$
.htaccess
^$
^/$
RewriteEngine On
RewriteBase /
RewriteRule ^$ http://some-other-domain.com [P]
最终目标是将另一个网站的页面用作主页。也许有更好的方法?
答案1
尝试在文件顶部添加如下内容.htaccess
,前WordPress 前端控制器:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(index\.php)?$ http://some-other-domain.com/ [P]
RewriteBase
和指令RewriteEngine
在此不是必需的。RewriteEngine
可能已在文件后面作为# BEGIN WordPress
代码块的一部分出现(顺序并不重要)。
注意代换字符串。这是一个必需的URL 的一部分(不能有空的 URL 路径)。如果您在此处省略它,则稍后必须由其他程序“修复”它。在外部重定向的情况下,浏览器会“修复”它,但这里没有“浏览器”。
这既匹配空的 URL 路径,也匹配index.php
(如果 mod_dir 正在发出目录索引的子请求)前mod_rewrite 通过 mod_proxy 发送请求)。状况检查REDIRECT_STATUS
环境变量是否在这种情况下是必要的,以避免代理一切,因为 WordPress 前端控制器将所有内容重写为index.php
。该条件确保仅匹配直接请求,而不是重写的请求。
在旁边:ARewriteRule
图案like^/$
永远不会在.htaccess
上下文中匹配。这仅在指令用于服务器(或者虚拟主机) 语境。