0

我尝试了几个小时来重新编辑 https://www。域 .com 到 https:// 域 .com 与 301。

我有域 .com 的证书,但没有 www 的通配符。域名.com。

我尝试了以下方法:

RewriteEngine On
RewriteCond        %{HTTPS}        =on
RewriteCond        %{HTTP_HOST}    ^www\.meinedomain\.de$ [NC]
RewriteRule        ^(.*)            https://meinedomain.de/$1 [L,R=301]

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Redirect 301 / https://mineyourmind.de/

这些都不起作用。有什么想法可能是错的吗?我已将它直接添加到 apache 设置中,它对 http://www 非常有用。domain .com 和 http:// domain .com 到 https:// domain .com 但不适用于 https:// www。域名.com。


目前我使用以下配置。每个重新编辑都可以正常工作,而不是https://www.mineyourmind.dehttps://mineyourmind.de

这样的文件应该是什么样子?

<VirtualHost *:80>
    ServerName mineyourmind.de
    ServerAlias www.mineyourmind.de
    Redirect 301 / https://mineyourmind.de/ 
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin **
    DocumentRoot /var/www/mineyourmind
    ServerName mineyourmind.de
    ServerAlias www.mineyourmind.de
    SSLEngine on
    SSLCertificateFile    /etc/**
    SSLCertificateKeyFile /etc/**
    SSLCertificateChainFile /etc/**
    SSLCACertificateFile /etc/**

    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        deny from all
    </Directory>
    <Directory /var/www/mineyourmind/>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

第二次编辑:

<VirtualHost *:80>
    ServerName mineyourmind.de
    ServerAlias www.mineyourmind.de
    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www\.mineyourmind\.de$ [NC]
    RewriteRule (.*) https://mineyourmind.de%{REQUEST_URI} [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin **
    DocumentRoot /var/www/mineyourmind
    ServerName mineyourmind.de
    ServerAlias www.mineyourmind.de
    SSLEngine on
    SSLCertificateFile    /etc/apache2/**
    SSLCertificateKeyFile /etc/apache2/ssl/**
    SSLCertificateChainFile /etc/apache2/ssl/**
    SSLCACertificateFile /etc/apache2/ssl/**
    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www\.mineyourmind\.de$ [NC]
    RewriteRule (.*) https://mineyourmind.de%{REQUEST_URI} [R=301,L]
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow
        deny from all
    </Directory>
    <Directory /var/www/mineyourmind/>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
4

1 回答 1

0

如果您请求https://www.meinedomain.de/并且您的证书未获得授权,那么无论您如何重定向www.meinedomain.de,您都会收到安全警告。重定向只能在他们接受安全异常后发生。

确保您已将这些规则放入SSL虚拟主机的配置中,而不是非 SSL 配置中。Apache 通常将它们分开。如果这仍然不起作用,您可以尝试将其放入文档根目录中的 htaccess 文件中:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.meinedomain\.de$ [NC]
RewriteRule (.*) https://meinedomain.de%{REQUEST_URI} [R=301,L]
于 2013-08-18T00:22:02.300 回答