当多站点URL使用映射域时,如何指定其他RewriteBase?

时间:2019-04-08 10:47:06

标签: wordpress .htaccess mod-rewrite url-rewriting multisite

我有一个使用以下目录的多站点设置:

mainsite.com/multisites

当前,每个多站点实例的URL设置如下:

mainsite.com/multisites/instance1
mainsite.com/multisites/instance2
mainsite.com/multisites/instance3

这些实例正在使用此版本的WordPress多站点.htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /multisites/
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress

但是,我有一个需要映射URL的实例(example.com),并且上述.htaccess阻止了映射域显示除主页以外的任何页面,但是如果我在下面使用.htaccess可以修复映射的站点,但所有其他实例都会错误地重定向:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

这可以修复映射的域,但可以防止其他多站点实例访问/ multisites /目录。

如何在.htaccess和example.com(或任何其他映射的域)的第一个版本中使用RewriteBase /multisites/重写instance1和instance2(或任何其他),同时使用RewriteBase /显示为.htaccess的第二版?

0 个答案:

没有答案