Articles of redirect

variablesSERVER_PROTOCOL究竟包含了什么(Apache 2.4)?

我有一个由Apache 2.4服务的网站,它应该通过HTTPS提供所有内容。 我已经有适当的redirect了,但没有发现任何病理情况。 我想改善这种情况,当我做作业的时候,在这个文档中遇到了下面这个例子: <If "%{SERVER_PROTOCOL} != 'HTTPS'"> Redirect "/admin/" "https://www.example.com/admin/" </If> 我稍微修改了这个以反映我的情况: <If "%{SERVER_PROTOCOL} != 'HTTPS'"> Redirect "/" "https://www.example.com/" </If> 现在,当试图从我的网站查看任何url时,浏览器进入无限redirect循环。 我怀疑这个例子实际上是错的。 SERVER_PROTOCOL在任何情况下都不包含HTTPS值。 相反,根据我在其他文章中读到的内容,它包含了诸如HTTP/1.1 (正如名字所期待的)。 所以我的问题是:什么情况下/什么情况下, SERVER_PROTOCOL究竟包含什么内容? 在几个小时的研究中,Apache官方文档网站是唯一一个将HTTPS列为SERVER_PROTOCOL的可能值的网站,原因可能是什么呢?

不安全的连接:问题redirect到非www使用https

我对服务器configuration不太熟悉,请帮我解决这个问题: 我有一个Debian8服务器和一个SSL证书,SSL证书只适用于我的非www域,所以我想redirect所有www请求到非www,通过下面的htaccess代码其工作的一些浏览器,但没有为其他一些工作 在Chrome浏览器上:成功将http://www.example.com或http://example.com请求redirect到https://example.com这就是我想要的所有浏览器。 在Mozilla上:将http://www.example.com请求redirect到https://www.example.com并停止使用INSECURE CONNECTION错误。 我想从这里浏览器首先检查www的SSL证书,并停止在非wwwredirect之前。 以下是我的.htaccessredirectwww到https与非www,是什么我错过了.htaccess ? 或任何其他解决scheme通过DNS或借助Apache默认ssl.conf 。 RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 我的SSL证书是Certbot ,我按照这个教程来安装https://www.youtube.com/watch?v=-TPoGQ4IjDI&t=100s你可以看到只有一个域名是non-www,没有设置SSL的选项www的证书。 如果我能得到www的SSL证书,那么我也可以解决这个问题。

Nginx http将httpsredirect到第一个server_name

我有一个这2个服务器块在我的nginx/sites-enabled/application.conf : upstream myapplication { server 127.0.0.1:8081; } server { listen 80; server_name app1.example.net app2.example.net app3.example.net; return 301 https://$server_name$request_uri; } server { listen 80; server_name app1.example.net app2.example.net app3.example.net; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_certificate /etc/ssl/certs/example_net.crt; ssl_certificate_key /etc/ssl/certs/example_net.key; ssl_verify_client off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers RC4:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; proxy_ssl_session_reuse off; location /apply { rewrite ^/apply(.*) $scheme://$server_name/?$query_string? permanent; […]

NGINX将除letsencrypt以外的所有内容redirect到https

我有一个简单的configuration,除了letsencrypt请求redirect到https,然后让我的虚拟主机只在https .. 目前我所有的请求都被redirect到了https,然后是一个404的letsencrypt: 这是我的configuration… server { listen 80 default_server; listen [::]:80 default_server; server_name _; location ^~ /.well-known/acme-challenge/ { allow all; default_type text/plain; return 200 "$1.abcd-efgh"; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; server_name plex.my_domain.com; ssl_session_timeout 30m; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_certificate /root/.acme.sh/plex.my_domain.com/fullchain.cer; ssl_certificate_key /root/.acme.sh/plex.my_domain.com/plex.my_domain.com.key; ssl_session_cache shared:SSL:10m; add_header X-Xss-Protection […]

将Tomcat请求redirect到另一个主机

如何将Tomcat 5.5接收的请求redirect到另一个主机上的另一个Tomcat实例,就像我可以在具有重写规则的Apache主机上一样? 例如:我想将http://example.com:8080/xmpl上的所有请求redirect到http://example.org:8080/xmpl (具有完整path和GET参数),但是保留http://example.com:8080/regular在端口8080的example.com上的http://example.com:8080/regular for Tomcat。这里example.com和example.org是完全不同的主机。

将用户从以前的子域redirect到新的URL

我最近上了一个新的网站,其中一个部门把用户引导到一个虚拟域名。 例如,www.ia.domain.com将自己伪装成自己的网站,这真的是domain.com/ia 我想要做的是将所有访问www.ia.domain.com的用户redirect到domain.com/ia, 以及www.ia.domain.com/faculty/ => domain.com/ia/faculty/ 这是在一个新的框,所以它没有原来的configuration。 该网站正在使用Linux(rhel5)在Apache上运行。 我不熟悉mod_rewrite。 我做了301redirect,但我无法redirect一个虚拟子域的方式。

htaccessredirect/到cgi-bin / cgiscript.cgi不工作

第一个免责声明:这是我第一次与.htaccess “会面”,我不是一个系统pipe理员,从来不是,而是附近的人,谁曾经设置机器。 所以现在我必须build立一个朋友cgi( pyblosxom )的网站( freehostia )。 我有一个像这样的目录树: mysite (path on freehostia is: /home/www/sitename) |-cgi-bin ||-cgiscript.cgi |-pybloxsom-installation |-data 我的问题:我想redirect所有传入的请求到http://mysubdomain.freehostia.com/ (根,如果可能的话http://mysubdomain.freehostia.com/data/和http://mysubdomain.freehostia.com / pybloxsom-installation / )到http://mysubdomain.freehostia.com/cgi-bin/cgiscript.cgi 。 有人可以解释如何做到这一点? 我所有的尝试都会导致无限的redirect。

通过mod重写传递一个URL作为variables

我想在apache上使用mod_rewrite传递一个实际的url作为variables 我有一个页面externalLink.php,可以传递一个URL在奥德做一些魔术即 /externalLink.php?url= http://example.com 我想这是一个很好的URL像/ external / http://example.com 我已经添加了一个重写规则到我的htaccess,我希望可以工作,但作为怀疑它不。 RewriteRule ^ external /([^/.]+)/*$ /externalLink.php?url=$1 [L] 有谁知道这是可能的吗? 提前致谢 .K

如何使用.htaccess将根目录redirect到根目录下?

如果我在我的域的根目录下安装一个cms,并使用URL重写来获取干净的URL,那么我就不能再在根目录下的任意目录中托pipe文件了。 (不适合cms处理的文件)。所以我正在寻找一种方法来实现以下function: 安装cms在一个子目录,而不是根,例如mydomain.com/cms/ 当浏览器访问mydomain.com时,应将其redirect到mydomain.com/cms/以查看网站的主页。 当浏览器访问mydomain.com/some-other-folder时 ,它应该能够以标准方式访问那里的文件,而不受cms的干扰。 我尝试了简单的解决scheme Redirect / /cms 但这只会造成一个无限循环。 我有什么其他的select吗?

是否有可能做301redirect和redirect到请求的资源?

对于我们的其中一个项目,我们正在对网站名称,徽标等进行重新标记。 因此,我们需要将所有用户从旧域redirect到新域。 使用IIS7,这非常简单。 我们只是创build一个新的网站,redirect到一个主机headered域的所有stream量到新的。 但是这失去了原来的目的地资源。 eg. Old Domain: www.OldDomain.com New Domain: www.NewDomain.com User: www.OldDomain.com/user/PureKrome -> 301 –> www.newDomain.com 注意它是如何进入新的域,但不是/ user / PureKrome? 我怎样才能做到这一点,所以它进入新的领域,并保持原来的资源要求? 我猜URL-ReWriter的IIS7可能有帮助? 另外,如果我想这样做会发生什么… CurrentDomain 1: Domain.com CorrectDomain 1: www.Domain.com CurrentDomain 2: AnotherDomain.com CorrectDomain 2: www.AnotherDomain.com 是否有可能在同一个IIS网站? 所以任何到domain.com的URL都会301到www.domain.com 现在我正在做2 IIS网站,301硬编码(这仍然意味着我也失去了原始资源请求)。 帮帮我!