Apache 重写代理专用主页

Apache 重写代理专用主页

我尝试过使用各种正则表达式(^/$、、)通过 重写/代理 WordPress 网站的主页。据记录,我已加载适当的模块来实现这一点,并且可以使用特定的正则表达式对其他路径执行此操作,但就是不能对主页执行此操作。其他答案已指出^index.php$并可行,但对我来说不起作用。如何才能仅针对主页进行定位?^$.htaccess^$^/$

RewriteEngine On
RewriteBase /
RewriteRule ^$ http://some-other-domain.com [P]

最终目标是将另一个网站的页面用作主页。也许有更好的方法?

答案1

尝试在文件顶部添加如下内容.htaccessWordPress 前端控制器:

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上下文中匹配。这仅在指令用于服务器(或者虚拟主机) 语境。

相关内容