在子路径*上托管Wordpress

时间:2019-12-23 09:54:45

标签: wordpress apache mod-rewrite

我们使用的是wordpress Docker映像,但是在它前面有一个代理,该代理将具有/ blog / wp前缀的流量发送给它。

就wordpress(和Docker入口点脚本)而言,Wordpress文件位于文档根目录中。到目前为止,我们还无法使它正常工作。我在Internet上找到的所有信息均假定Wordpress实际上位于文档根目录的子目录中。

我们已经尝试过调整WP_SITEURL和WP_HOME常量,并尝试设计一些mod_rewrite魔术,但到目前为止没有任何运气。

因此在容器中,虚拟主机的配置如下:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    RewriteEngine on
    LogLevel info rewrite:trace8

    <Directory /var/www/html>
        Require all granted
        AllowOverride All
        Options -Indexes
    </Directory>
</VirtualHost>

在Wordpress服务之前,使用了Varnish:

backend blog_wp {
    .host = "blog_wp";
    .port = "80";
}

...

sub vcl_recv {
    if (req.url ~ "^/blog/wp/?") {
        set req.backend_hint = blog_wp;
    }
}

相关的.htaccess:

RewriteEngine On
RewriteBase /blog/wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

相关的wp-config.php

define( 'WP_HOME', 'https://the.hostname/blog/wp' );
define( 'WP_SITEURL', 'https://the.hostname/blog/wp' );

0 个答案:

没有答案