Как указать другую RewriteBase, когда многосайтовый URL использует сопоставленный домен? - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть установка для нескольких сайтов, в которой используется такой каталог:

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 /.

Как мне заставить instance1 и instance2 (или любые другие) переписать, используя RewriteBase /multisites/ в первой версии .htaccess и example.com (или любых других сопоставленных доменов), при использовании RewriteBase /, как показано для второго версия .htaccess?

...