Dea*_*ano 143 linux apache webserver
环境 Centos与apache
尝试设置从http到https的自动重定向
From manage.mydomain.com --- To ---> https://manage.mydomain.com
Run Code Online (Sandbox Code Playgroud)
我已经尝试将以下内容添加到我的httpd.conf中,但它不起作用
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Dea*_*ano 197
我实际上已经按照这个例子,它对我有用:)
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
Redirect permanent / https://mysite.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
然后做:
/etc/init.d/httpd restart
Ide*_*vaj 121
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
Run Code Online (Sandbox Code Playgroud)
http://www.sslshopper.com/apache-redirect-http-to-https.html
要么
http://www.cyberciti.biz/tips/howto-apache-force-https-secure-connections.html
Jos*_*ush 90
搜索apache redirect http to https
并登陆这里.这就是我在ubuntu上所做的:
sudo a2enmod rewrite
sudo a2enmod ssl
Run Code Online (Sandbox Code Playgroud)
编辑文件
/etc/apache2/sites-available/000-default.conf
Run Code Online (Sandbox Code Playgroud)
内容应该是:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile <path to your crt file>
SSLCertificateKeyFile <path to your private key file>
# Rest of your site config
# ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
sma*_*c89 14
我需要这个来完成一些简单的事情,例如将所有 HTTP 流量从我的服务器上的默认 Apache 主页重定向到通过 HTTPS 提供服务的流量。
由于我对配置 Apache还很陌生mod_rewrite
,所以我宁愿避免直接使用,而是选择像这样更简单的东西:
<VirtualHost *:80>
<Location "/">
Redirect permanent "https://%{HTTP_HOST}%{REQUEST_URI}"
</Location>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/var/www/html"
SSLEngine on
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我喜欢这个,因为它允许我使用 Apache 变量。这样,我就不必指定实际的主机名,因为它只是一个没有关联域名的 IP 地址。
参考: 在目标中使用 RedirectMatch 和 HTTP_HOST
5er*_*ant 11
实际上,您的主题属于https://serverfault.com/但您仍然可以尝试检查这些.htaccess指令:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1
Run Code Online (Sandbox Code Playgroud)
Vin*_*ncy 10
建议不要使用mod_rewrite而是使用虚拟主机和重定向.
如果您倾向于使用mod_rewrite:
RewriteEngine On
# This will enable the Rewrite capabilities
RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same
location but using HTTPS.
# i.e. http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in
# httpd.conf or .htaccess context
Run Code Online (Sandbox Code Playgroud)
参考:Httpd Wiki - RewriteHTTPToHTTPS
如果您正在寻找301永久重定向,那么重定向标志应为,
R=301
Run Code Online (Sandbox Code Playgroud)
所以RewriteRule就像,
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
小智 7
这段代码对我有用。
# ----------port 80----------
RewriteEngine on
# redirect http non-www to https www
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
# redirect http www to https www
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
Run Code Online (Sandbox Code Playgroud)
# ----------port 443----------
RewriteEngine on
# redirect https non-www to https www
RewriteCond %{SERVER_NAME} !^www\.(.*)$ [NC]
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您有Apache2.4,请检查000-default.conf
-删除DocumentRoot
并添加
Redirect permanent / https://[your-domain]/
Run Code Online (Sandbox Code Playgroud)
服务器版本:Apache / 2.4.29(Ubuntu)
在网上和apache的官方文档中进行长时间搜索之后,唯一对我有用的解决方案来自/usr/share/doc/apache2/README.Debian.gz
To enable SSL, type (as user root):
a2ensite default-ssl
a2enmod ssl
Run Code Online (Sandbox Code Playgroud)
在文件/etc/apache2/sites-available/000-default.conf中,添加
重定向“ /”“ https://sub.domain.com/ ”
<VirtualHost *:80>
#ServerName www.example.com
DocumentRoot /var/www/owncloud
Redirect "/" "https://sub.domain.com/"
Run Code Online (Sandbox Code Playgroud)
而已。
PS:如果您想不摘录就阅读本手册:
gunzip -cd /usr/share/doc/apache2/README.Debian.gz
Run Code Online (Sandbox Code Playgroud)
小智 5
对我来说,这有效:
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
250380 次 |
最近记录: |