我知道这个问题已经被问过很多次了。然而,我似乎无法将其用于我的场景。
我想将所有 http 流量重定向到 https,并将 https 根重定向到登录页面。这是我在 vhost.conf 文件中的虚拟主机。
<VirtualHost *:80>
DocumentRoot /var/www
ServerName sub-domain.mydomain.com
ServerAdmin admin@example.com
CustomLog /var/log/httpd/http_access.log common
LOGFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
ErrorLog /var/log/httpd/http_error.log
TransferLog /var/log/httpd/http_transfer.log
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1
#Redirect permanent / https://%{HTTP_HOST}%/login/mylogin.jsp (Not used as I need to use a rewrite rule rather than redirect only the root)
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www
ServerName sub-domain.mydomain.com
ServerAdmin admin@example.com
CustomLog /var/log/httpd/https_access.log common
LOGFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
ErrorLog /var/log/httpd/https_error.log
TransferLog /var/log/httpd/https_transfer.log
SSLEngine on
SSLOptions +StrictRequire
SSLCertificateFile /etc/httpd/conf/mydomain.crt
SSLCertificateKeyFile /etc/httpd/conf/mydomain.key
SSLCertificateChainFile /etc/httpd/conf/intermediate.crt
# HSTS (mod_headers is required) (15768000 seconds = 6 months)- ref https://mozilla.github.io/server-side-tls/ssl-config-generator/
Header always set Strict-Transport-Security "max-age=15768000"
JkMount .....
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
SSLRequireSSL
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
AddDefaultCharset utf-8
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
RewriteEngine on
RewriteRule ^/$ /login/mylogin.jsp [R=permanent,L]
</VirtualHost>
https根登录重定向工作正常。但是,我无法让超文本传输协议https重定向工作。我尝试了各种建议,如;
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1
RewriteRule ^/?(.*) https://%{SERVER_NAME}/%$1
根据这里的各种帖子。但是其中一些不起作用,在一些建议中,有评论提到查询字符串不适用于%{REQUEST_URI}
变量。
我需要一个好的解决方案,将所有http流量重定向到https,同时保留其余的请求url。例如
http://sub-domain.mydomain.comhttps://sub-domain.mydomain.com
http://sub-domain.mydomain.com/somepage.htmlhttps://sub-domain.mydomain.com/somepage.html
http://sub-domain.mydomain.com/thepage.html?day=tuesday
一旦我测试过并对重定向工作满意,我将使重定向永久化。
我不想使用htAccess请。
您已经处理了从“/”到“/login/mylogin.jsp”的具体重定向,所以它应该可以工作。要将所有http流量重定向到HTTPS,可以使用RedirectMatch。
<VirtualHost *:80>
DocumentRoot /var/www
ServerName sub-domain.mydomain.com
ServerAdmin admin@example.com
CustomLog /var/log/httpd/http_access.log common
LOGFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
ErrorLog /var/log/httpd/http_error.log
TransferLog /var/log/httpd/http_transfer.log
RedirectMatch permanent ^/(.*)$ https://sub-domain.mydomain.com/$1
</VirtualHost>
主要内容:Apache虚拟主机类型,3. 虚拟主机配置示例Apache Web服务器可以在SAME服务器上托管多个网站。每个网站不需要单独的服务器机器和apache软件。这可以使用虚拟主机或VHost的概念来实现。 要在Web服务器上托管的任何域(网站应用)都将在apache配置文件中具有单独的条目。 Apache虚拟主机类型 Apache虚拟主机类型有两种 - 基于名称的虚拟主机 基于地址或基于IP的虚拟主机。 1. 基于名称的虚拟主机 基于名称的虚拟
Chrome版本:67.0.3396.87 Web服务器:Apache 当我击中http://www.assignmenthelpdesk.local,它将重定向到https://www.assignmenthelpdesk.local/ 如何阻止MAMP重定向到https?提前感谢。 /Applications/MAMP/conf/apache/extra/httpd vhosts。详情如下:
我需要配置我的Tomcat 9服务器,将http重定向到https流量。 我尝试过: > < li> 对http端口使用连接器,并具有指向安全连接器的redirectPort属性。 在web.xml底部包括一个安全约束链接,它适用于其他不使用虚拟主机的Tomcat服务器 连接器 安全约束 服务器中的主机配置.xml < Li > https://example 2 . com-Works < Li
APP1在端口80上使用Apache2 APP2在端口81上使用IIS App3在端口83上使用Xampp Apache 我已经为每个端口1有了一个域。端口80 2的domain1.com。端口81 3的domain2.com。端口83的domain3.com 所有域都指向服务器,当我在域后面使用(:port)时,它工作得很好,例如。域1:83已经在端口83上打开了Xampp Apache。 每个
在我的apache服务器上,我希望能够将所有传入的http请求重定向到等效的https请求。问题是,我希望能够在不指定的情况下为我的默认虚拟主机执行此操作,并使用请求url中出现的任何服务器名称进行重定向。我希望得到这样的东西: 这是可以使用还是我必须求助于?
术语"虚拟主机"是指在一个机器上运行多个网站(比如:www.company1.com和www.company2.com)。如果每个网站拥有不同的IP地址,则虚拟主机可以是"基于IP"的;如果只有一个IP地址,也可以是"基于主机名"的,其实现对最终用户是透明的。 Apache是率先支持基于IP的虚拟主机的服务器之一。1.1及其更新版本同时支持基于IP和基于主机名的虚拟主机,今后,不同的虚拟主机有时会