我尝试添加到 .htaccess 文件
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://mywebsite.com/$1 [R=301,:]
我也尝试过(在 httpd.conf 文件中)
<VirtualHost *:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://www.mywebsite.com/$1 [NC,R=301,L]
</VirtualHost>
当我尝试通过该网站访问时,它会尝试从地址www.mywebsite.com
加载https:// 192.xxx.xxx.xxx
我可以通过以下方式访问https://mywebsite.com
知道我做错了什么或没有设置吗?
谢谢
答案1
这是将 http 重定向到 https 的语法(您不需要使用所有这些配置,使用虚拟主机或 .htaccess,而不是同时使用):
使用虚拟主机:
<VirtualHost *:80>
ServerName 192.xxx.xxx.xxx
ServerAlias mywebsite.com
Redirect 301 / https://mywebsite.com/
</VirtualHost>
或者
<VirtualHost *:80>
ServerName 192.xxx.xxx.xxx
ServerAlias mywebsite.com
RewriteRule (.*) https://mywebsite.com/$1
</VirtualHost>
使用 .htaccess
RewriteCond %{SERVER_PORT} ^80$
RewriteRule .* https://mywebsite.com/%{REQUEST_URI} [R=301,L]
在你的情况下
可能有其他东西与你的重定向交互,因为使用 IP 代替域名是不正常的
检查你的 DNS 配置,确保它为 mywebsite.com 提供服务,而不是 IP
顺便说一下,RewriteCond %{SERVER_PORT} 80
将匹配所有包含 80 的端口,因此该规则将应用于 80,800,880,1080,8080 等...
您可以在 /etc/hosts 中添加:
127.0.0.1 localhost
127.0.0.1 mywebsite.com
127.0.0.1 www.mywebsite.com www
您甚至可以将域名设置为服务器 IP,而不是 127.0.0.1
如果需要,你可以设置 Apache 来监听端口 80:
Listen 80