我为我的服务器上的新站点设置了一个新的虚拟主机,但尽管设置与原始站点完全相同,但它的行为却很奇怪。
我希望将所有请求重定向到HTTPS,简单地说。在我的主站点(工作站点)我有这个指定 VirtualHost
配置,并在 .htaccess
我指定了一个额外的规则来允许短网址。具体来说,非工作网站的问题是,如果我试图去 example.com/url
,重定向转到 https://example.comurl
并删除必要的 /
来自网址。
我将确切的配置复制到新的 VirtualHost
和 .htaccess
来自工作站点的文件,所以我不确定为什么它不适用于新的。我的两个站点的DNS记录都使用A记录指向它,没有重定向或在DNS级别发生任何事情。我试过放一个 /
在结束时 Redirect
下面的代码中的行,但问题没有解决。服务器是Ubuntu 14.04,Apache是2.4.7版。这两个站点都是独立的域名 .conf
使用的文件,但它们托管在具有相同IP地址的同一服务器上。我该如何解决这个问题?
中的相关代码 VirtualHost
:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com
</VirtualHost>
并在 .htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
如果它有帮助/重要,这是我的VirtualHost文件中的SSL配置,尽管它位于所有其他指令之外的文件的最开头:
SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdo$
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
这是专门针对的配置 VirtualHost
对于网站:
<VirtualHost *:443>
ServerName example.com
ServerAdmin user@example.com
DocumentRoot /var/www/example
ErrorLog ${APACHE_LOG_DIR}/errorexample.log
Options -Indexes
SSLEngine on
SSLCertificateFile /etc/ssl/example/examplecert.crt
SSLCertificateKeyFile /etc/ssl/example/examplekey.key
SSLCertificateChainFile /etc/ssl/chain/class1.pem
</VirtualHost>
1
你有SSL定义?
—
td512
也许不同的Apache版本?您是否尝试将斜杠放在Redirect行的末尾?像这样?
—
Marki555
Redirect permanent / https://example.com/
我确实已经定义了SSL,我在OP中添加了相关的代码块。我也尝试过放一个
—
vaindil
/
在结束时 Redirect
命令,但没有解决问题。