Как использовать.htaccess для псевдонима / перенаправления субдомена в другую подпапку домена
Я бы хотел, чтобы мои пользователи переходили на
red.example.com
и что они на самом деле видят, это страница, обслуживаемая с
blue.example.com/red
Возможно ли это с помощью .htaccess
? По сути, это перенаправление, но я не хочу, чтобы изменение URL-адреса в адресной строке.
редактировать
Добавление информации о виртуальном хосте.
RewriteEngine On
RewriteRule /<none> / [L,R]
<IfDefine USE_PHP_FPM>
<Proxy "unix:/opt/bitnami/php/var/run/wordpress.sock|fcgi://wordpress-fpm" timeout=300>
</Proxy>
</IfDefine>
<Directory "/opt/bitnami/apps/wordpress/htdocs">
AuthType Basic
AuthName Coincurve
AuthUserFile "/opt/bitnami/apache2/wordpress_users"
Require valid-user
Options +MultiViews +FollowSymLinks
AllowOverride None
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
# Require all granted
</IfVersion>
<IfDefine USE_PHP_FPM>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://wordpress-fpm"
</FilesMatch>
</IfDefine>
RewriteEngine On
#RewriteBase /wordpress/
RewriteRule ^index\.php$ - [S=1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Include "/opt/bitnami/apps/wordpress/conf/banner.conf"
</Directory>
Include "/opt/bitnami/apps/wordpress/conf/htaccess.conf"
1 ответ
У меня есть только один настоящий сервер на mydomain.com. красный и синий поддомен только указывают на IP-адрес этого mydomain.com.
Если субдомены все указывают на одно и то же место (корень основного домена), то вам, вероятно, не нужно "перенаправлять" на другое имя хоста (это может включать использование mod_proxy и настройку обратного прокси-сервера). Другими словами blue.example.com/red
указывает на то же самое, что и red.example.com/red
- так что это становится относительно простым внутренним переписыванием.
(Хотя ваша конфигурация vhost является неполной, я предполагаю, что у вас есть некоторые ServerAlias
где-то там директивы?)
Например:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^red\.example\.com [NC]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^ /red%{REQUEST_URI} [L]
Чек против REDIRECT_STATUS
Переменная окружения должна гарантировать, что мы переписываем только первоначальный запрос от клиента, т.е. не переписанные запросы, что позволяет избежать цикла перезаписи. REDIRECT_STATUS
изначально пусто и установлено на "200" после первого успешного перезаписи. В противном случае, это безоговорочно переписывает все, так что можно иметь /red
подкаталог внутри корня /red
каталог, если хотите.