如何使用 .htaccess 到 alias/redirect 子域到另一个域子文件夹
How to use .htaccess to alias/redirect subdomain to another domain sub folder
我希望我的用户去
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"
I've only got one actual server at mydomain.com. the red and blue subdomains are just both pointing to that mydomain.com's IP address.
如果子域都指向同一个地方(主域的根),那么您可能不需要 "redirect" 到不同的主机名(这将涉及使用 mod_proxy 并配置 反向代理 )。换句话说 blue.example.com/red
指向与 red.example.com/red
相同的点 - 所以它变得相对简单 内部重写 .
(虽然您的虚拟主机配置不完整,但我假设您在某处有一些 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
子目录。
我希望我的用户去
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"
I've only got one actual server at mydomain.com. the red and blue subdomains are just both pointing to that mydomain.com's IP address.
如果子域都指向同一个地方(主域的根),那么您可能不需要 "redirect" 到不同的主机名(这将涉及使用 mod_proxy 并配置 反向代理 )。换句话说 blue.example.com/red
指向与 red.example.com/red
相同的点 - 所以它变得相对简单 内部重写 .
(虽然您的虚拟主机配置不完整,但我假设您在某处有一些 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
子目录。