У меня есть сертификат SSL, поэтому http -> https является обязательным (в качестве меры предосторожности). Я намерен иметь несколько поддоменов, то есть subdomain1.example.com, subdomain2.example.com, в настоящее время есть один поддомен, который работает без каких-либо проблем. Я использую многосайтовую установку Wordpress, которая была установлена (намеренно) в одной подпапке. Настройка мультисайта предназначена для других языков. Текущая структура папки сервера выглядит следующим образом:
- public_html
- backstage
- subdomain1 (folder for the subdomain)
- Главная сцена
- wp-admin
- wp-content
- wp-includes
- (the rest of the WP files)
- index.php (тестовый файл, который не должен загружаться, если перенаправление настроено правильно)
В настоящее время www.example.com/frontstage/ открывает основной сайт WP, это нормально. Я могу получить доступ к его wp-admin без проблем. www.example.com/frontstage/en/ показывает страницу 404, это не нормально. www.example.com/frontstage/en/wp-admin/ открывает панель управления для другого сайта.
Я хочу сохранить удаление из index.php любых ссылок (чтобы ссылки оставались чистыми).
Есть две "простых" вещи, которые нужно правильно настроить:
- Я хочу сохранить структуру папок сервера как есть, но пропустить папку «frontstage», чтобы при посещении www.example.com загружался основной сайт WP (и в случае, если кто-то загрузит www.example.com / frontstage / перенаправит на www.example.com). Естественно, «сдвиг» должен позволить www.example.com/en/ открывать дополнительный веб-сайт (любые другие языковые сайты, которые могут появиться после). В идеале без переписывания всех ссылок на сайтах WP.
- В настоящее время / en / site не загружает свой корень. Демо-записи и страницы загружаются нормально.
Мой текущий .htaccess на корневом уровне выглядит так:
# disable index.php from urls
RewriteEngine On
RewriteBase /
<IfModule mod_rewrite.c>
# redirect index.php requests
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
# force https and www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
# move wordpress one level up
# allow subdomain
RewriteRule ^backstage\/subdomain1\/?(.*)$ "https\:\/\/subdomain1\.example\.com\/$1" [R=301,L]
Любая помощь с этим очень ценится (я все еще изучаю биты и трюки htaccess, и этот действительно вне меня). Что мне не хватает в приведенном выше коде, чтобы понять это правильно?