1

我有一个名为 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>

但它不起作用

4

1 回答 1

1

在使用几个 URL 进行测试时,以下内容似乎有效:

RewriteCond %{HTTP_HOST} ^(beta\.)?mailcake\.com
RewriteRule (.*) http://mailcake.com/$1 [QSA]

这里重要的部分是添加$1以确保将任何路径添加到 URL(在您的示例中,http://beta.mailcake.com/stats/将被重定向到http://mailcake.com/,这可能是不可取的。此外,添加[QSA]应该确保任何查询字符串也被传递。

如果您在 中进行重定向httpd.conf,我可能也不会添加[L],因为它可能会阻止任何.htaccess文件中的其他有效重定向工作。

于 2013-06-06T16:13:02.393 回答