共计 1492 个字符,预计需要花费 4 分钟才能阅读完成。
如题,来说说 Apache 使用了 301 重定向后,网址后出现双斜杠的问题 (示例 https://www.qicaiyun.top//)。今天在站长工具检测平台检测了一下本站的状态码,发现域名后居然是双斜杠,既然问题出现了,咱就得解决,首先附上几组 Apache 跳转规则:
方法一:.htaccess 强制 301 重定向 HTTPS
设置.htaccess 文件的 301 重定向,在.htaccess 文件中加入以下规则:
123456 <IfModule mod_rewrite.c>RewriteEngine onRewriteBase /RewriteCond %{SERVER_PORT} !^443$RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]</IfModule>以上方法,通过.htaccess 设置 301 将 HTTP 重定向到 HTTPS 是最为常见的方法。
方法二:HTTP 80 强制转 HTTPS
全站使用 HTTPS 协议访问,所以将 HTTP 重定向到 HTTPS,在.htaccess 文件中加入以下规则
123 RewriteEngine OnRewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]或者
123 RewriteEngine OnRewriteCond %{HTTPS} !=onRewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]强制 HTTPS 方式访问,并自动将顶级域名跳转到 WWW
以本站为例,顶级域名是指 qicaiyun.top,以下教程是将:http://qicaiyun.top 跳转到 https://www.qicaiyun.top/
12345 RewriteEngine OnRewriteCond %{HTTP_HOST} !^www.qicaiyun.top$ [NC]RewriteRule ^(.*)$ https://www.qicaiyun.top/$1 [L,R=301]RewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://www.qicaiyun.top/$1 [L,R=301]强制 HTTPS 方式访问,并自动将 WWW 跳转到顶级域名
本教程是将:https://www.qicaiyun.top 跳转到 https://qicaiyun.top/
12345 RewriteEngine OnRewriteCond %{HTTP_HOST} !^qicaiyun.top$ [NC]RewriteRule ^(.*)$ https://qicaiyun.top/$1 [L,R=301]RewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://qicaiyun.top/$1 [L,R=301]以上,使用.htaccess 文件将 HTTP 强制跳转到 HTTPS 的几种方法,包括顶级域名和 www 域名之间的跳转方法,amh 用户可使用面板软件“amrewrite”直接添加,修改前先效验下规则是否有错误。
接下来说说双斜杠的解决方法,
一:^(.*)$,有些教程会写成 ^/(.*)$,自然是不对的。
二:把 RewriteRule ^(.*)$ https://www.qicaiyun.top/$1 [L,R=301] 网址后斜杠去除,改成:
RewriteRule ^(.*)$ https://www.qicaiyun.top$1 [L,R=301]
以上就是解决重定向网址后双斜杠的解决方法。