我有一个名为mailcake.com的网站,我希望有beta.mailcake.com,重定向到mailcake.com,我怎样才能实现这一目标?我在/etc/httpd/conf.d/mailcake.conf
上有这样的NameVirtualHost *:443
<VirtualHost *:80>
DocumentRoot /var/www/mailcake
ServerName mailcake.com
ServerAlias www.mailcake.com beta.mailcake.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^beta\.mailcake\.com$ [NC]
RewriteRule (.+)$ "http://mailcake.com" [L,P]
ErrorLog /var/log/mailcake.com-error_log
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/mailcake
ServerName mailcake.com
ServerAlias www.mailcake.com
SSLEngine on
SSLCertificateFile /var/www/mailcake.crt
SSLCertificateKeyFile /var/www/mailcake.key
ErrorLog /var/log/mailcake.com-error_log
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
但它不起作用
答案 0 :(得分:0)
使用几个网址进行测试时,以下内容似乎有效:
RewriteCond %{HTTP_HOST} ^(beta\.)?mailcake\.com
RewriteRule (.*) http://mailcake.com/$1 [QSA]
此处的重要部分是添加$1
以确保将任何路径添加到网址中(在您的示例中,http://beta.mailcake.com/stats/
会被重定向到http://mailcake.com/
,这可能不是此外,添加[QSA]
也应确保传递任何查询字符串。
如果您在httpd.conf
内进行重定向,我可能也不会添加[L]
,因为它可能会阻止任何.htaccess
文件中的其他有效重定向工作。< / p>