首页
关于我们
友链链接
壁纸下载
更多
统计中心
热点搜索
图床上传
Search
1
[Win DD包] wes7-x86-cn-精简,安装后仅占用1.55G存储空间
25,498 阅读
2
保姆级教程!甲骨文ARM DD成Debian10并升级内核成5.10
6,197 阅读
3
N1教程:Openwrt安装docker webui界面(基于flippy openwrt n1固件)
5,224 阅读
4
ZFAKA小店Docker版之 数据的备份和迁移
5,045 阅读
5
甲骨文oracle ARM 重装 Debian 10
4,694 阅读
Linux学堂
网站建设
网络资源
主题插件
固件工具
主机评测
登录
Search
标签搜索
vps
linux
typecho
bench
mysql
nginx
lnmp
ssl
empirecms
openwrt
cloudflare
centos
google
n1
301
qbittorrent
free
onedrive
docker
telegram
V+变量
累计撰写
260
篇文章
累计收到
216
条评论
首页
栏目
Linux学堂
网站建设
网络资源
主题插件
固件工具
主机评测
页面
关于我们
友链链接
壁纸下载
统计中心
热点搜索
图床上传
搜索到
6
篇与
的结果
2025-01-19
Apache .htaccess 301重定向规则大全,赶紧收藏吧
本文适用于Apache或基于Apache的第三方Web Server软件如LiteSpeed等,需要支持.htaccess文件的环境。Nginx下的301见Nginx常用的301重定向规则1单文件的重定向适用于网站结构调整,而又完成URL权重的传递。同域名下将example.com/oldfile.htm重定向至 example.com/newfile.htmRedirect 301 /oldfile.htm /newfile.htm2将文件重定向至不同域名下,如 example.com/oldfile.htm 重定向至 example.net/newfile.htm:Redirect 301 /oldfile.htm example.net/newfile.htm给站点换域名适用于给站点更换域名,比如站点弃用域名example.com,打算启用新域名example.net ,这时候我们需要做301重定向让搜索引擎知道我们启用了新域名来完成整站权重的转移。在站点根目录.htaccess文件中添加以下规则:RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.net/$1 [L,R=301,NC] full domain 301 redirect强制使用www访问强制使用www来访问,将example.com重定向至www.example.com了解点SEO的朋友都知道搜索引擎喜欢URL唯一化,如 example.com 和 www.example.com 访问内容完全一样的时候比较妥善的做法是统一URL,我们知道网站访客对页面内容有足够兴趣的时候他们可能会在互联网上传播你的内容,如果两个域名未做统一标准化URL处理的的时候会出现这种情形:访客A分享了内容 example.com/1.html,访客B分享了内容 www.example.com/1.html,这样一来显然对SEO非常不友好的。如何解决?建立统一地标准URL,你如果想全部使用 www.example.com作为主域的话可以在.htaccess文件中添加以下规则来强制example.com重定向至带有www的域名访问:RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC] force www 301 redirect强制不使用www访问强制删除www来访问,将www.example.com重定向至example.com该功能和上一段完全相反,其实移除www访问让域名变得更简短倒也是一种不错的选择:使得域名更简短,特别在手机上如果手工访问站点的话会方便得多。规则如下RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC] force non www 301 redirect更换文件扩展名适用于文件后缀名的更换,如example.com/file.php 替换为 example.com/file.htmRewriteEngine On RewriteCond %{REQUEST_URI} .php$ RewriteRule ^(.*).php$ /$1.htm [R=301,L] file extension 301 redirect强制https访问适用于开启了ssl的站点,需要统一使用https访问RewriteEngine on RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}强制http访问处于某种原因如证书到期了又不想续了,需要关闭ssl将URL由https重定向至httpRewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
2025年01月19日
30 阅读
5 评论
0 点赞
2025-01-19
Nginx常用的301重定向规则
仅适用于Nginx, Apache请移步: Apache .htaccess 301重定向规则大全,赶紧收藏吧注意: 所有代码作用范围都在server配置区域中:server { #Rewrite Rules }不带www重定向带有wwwif ($http_host !~ "^www.towait.com$") { rewrite ^(.*) http://www.towait.com$1 permanent; }或if ($host !~* ^www\.) { rewrite ^(.*)$ $scheme://www.$host$1 permanent; }带有www重定向不带wwwif ($http_host !~ "^towait.com$") { rewrite ^(.*) http://towait.com$1 permanent; }域名a.com重定向b.comif ($http_host ~ "^a.com$") { rewrite ^(.*) http://b.com$1 permanent; }强制HTTPS访问1在服务端配置SSL的情况if ($scheme != "https") { return 301 https://$host$request_uri; }2在CDN端配置SSL证书的情况if ($http_x_forwarded_proto = "http") { return 301 https://$server_name$request_uri; }
2025年01月19日
27 阅读
1 评论
0 点赞
2025-01-19
解决Nginx中强制跳转HTTPS访问出现的太多重定向错误
因为可以白嫖HTTPS服务,所以目前很多项目都部署在cloudflare的CDN中,此前都用的自己服务端的SSL证书,今天在cloudflare申请了一年的免费证书,在做URL统一化的时候(强制www和https访问)发现重定向次数过多的错误(redirected you too many times),这是由于我未在服务端配置SSL证书,也就是说cloudflare以HTTP回源,所以服务器接收到的信息就是HTTP请求,但是受强制HTTPS访问规则影响,服务端又给它重定向到HTTPS,又回到了CDN那边,结果CDN又产生HTTP回源请求,这就形成了一个闭环,听上去有点绕,总之访问页面就这么来回无限循环了。此前在服务端配置了SSL并强制用HTTPS访问的nginx规则是if ($scheme != "https") { return 301 https://$host$request_uri; }现在如果我们未在服务端配置SSL使用CDN端的SSL证书并启用HTTPS访问的正确写法是if ($http_x_forwarded_proto = "http") { return 301 https://$server_name$request_uri; }
2025年01月19日
41 阅读
3 评论
0 点赞
2021-05-02
SEO优化:nginx 301重定向带www的https链接配置方法-方法二
之前介绍过nginx 301重定向带www的https链接配置方法,且已应用到本站上,感兴趣的可以看这里:SEO优化:nginx 301重定向带www的https链接配置方法-方法一 https://www.vvars.com/Website-construction/SEO-optimization-nginx-301-redirection-https-link-configuration-method-with-www-method-one.html今天介绍另一种方式实现nginx链接301跳转到带www https的方法,配置如下:server { listen 80; listen 443 ssl; server_name vvars.com; return 301 $schmeme://www.vvars.com$request_uri; } server { listen 80; server_name *.vvars.com; return 301 https://host$request_uri; } server { listen 443 ssl; server_name www.vvars.com; root /home/wwwroot/PHP7/domain/aihaba.com/web$subdomain; ssl_certificate /home/wwwroot/PHP7/etc/aihabacom/214014475050178.pem; ssl_certificate_key /home/wwwroot/PHP7/etc/aihabacom/214014475050178.key; ...... } 补充说明如下:第一段代码是将vvars.com 301跳转到www.vvars.com 不管是http还是https链接。第二段代码是把任何非https的二级域名(www.vvars.com实际上是个二级域名 )跳转到https的对应二级域名。第三段是应对https的请求,挂载https证书。
2021年05月02日
1,555 阅读
0 评论
0 点赞
2021-05-02
SEO优化:nginx 301重定向带www的https链接配置方法-方法一
不少浏览器都开始逐渐更新至只支持https的网站,所以很多http网站都需要添加对https的支持,这时就需要涉及到www和不加www的跳转问题,由于www和不加www使用的是不同的证书,所以需要做301跳转处理。最近博客启用了https,为了实现http://vvars.com、http://www.vvars.com、https://vvars.com 用301重定向https://www.vvars.com查了很多资料 ,没有找到完美的解决方案,经过一番探索,特记录下折腾过程,下面是方法1。server { listen 80; server_name vvars.com www.vvars.com; return 301 https://www.vvars.com$request_uri; } server { listen 443 ssl; ssl_certificate /home/wwwroot/PHP7/etc/vvarsssl/vvars.crt; ssl_certificate_key /home/wwwroot/PHP7/etc/vvarsssl/vvars.key; server_name vvars.com; return 301 https://www.vvars.com$request_uri; } server { listen 443 ssl; ssl_certificate /home/wwwroot/PHP7/etc/vvarsssl/vvars.crt; ssl_certificate_key /home/wwwroot/PHP7/etc/vvarsssl/vvars.key; server_name www.vvars.com; ....... } 说明:第一段代码是将http://www.vvars.com和http://vvars.com  ; 301重定向https://www.vvars.com,第二段代码是将https://vvars.com 301重定向https://www.vvars.com,第三段代码为指定主机用ssl连接,......为网站程序的配置文件。然后用站长工具 http://tool.chinaz.com/pagestatus/ 检查下http状态:nginx强制启用https方法http 301跳转到带www的https链接方法可以看到返回状态码均为301,所有http和不带www的域名都301重定向到了带www的https链接,这样有利于SEO。
2021年05月02日
3,649 阅读
0 评论
1 点赞
2021-03-16
利用nginx实现301跳转到https的根域名
基于SEO和安全性的考虑,现在需要进行 301 跳转。以下方法使用 Nginx 作通用处理。(推荐教程:nginx教程)实现结果需要将以下地址都统一跳转到 https 的根域名 https://www.vvars.comhttp://vvars.com (不带 www 的 http)http://www.vvars.com (带 www 的 http)https://www.vvars.com (带 www 的 https)301 与 302 的区别301 是永久重定向,302 是临时跳转,主要的区别在于搜索引擎对此的对待方式301:搜索引擎会将权重和 PR 值进行转移302:搜索引擎不会进行额外处理现在是希望搜索引擎认为原地址已经不存在了,完全转移到新地址,所以使用 301http 跳转到 https最简单的方法是直接在 sever 中返回一个重定向的地址,中间再加上 301 状态码(否则默认为 302)server {listen 80;return 301 https://$host$request_uri;}return 和 rewrite 都属于 Nginx 的重写模块的指令,因为这里不需要对路径进行修改,所以用 return 会比较方便$host 和 $request_uri 都是 Nginx http 模块的嵌入变量,两个变量合并一起就相当于把请求的 http:// 去掉的结果www 跳转到根域名这个只需在 https 中作处理,因为所有 http 都跳转到 https 了server {listen 443 ssl;server_name ~^(?www.)?(.+)$;if ( $www ) {return 301 https://$2$request_uri; }...这里利用了 server_name 的正则匹配功能,在其值前增加 ~ 即可启用,支持 PCRE 语法使用正则是为了确认是否有前缀 www. 以及捕获根域名,生成两个变量,一个是具名捕获变量 $www ,另一个是数值捕获变量 $2if 里面不支持使用数值捕获变量,否则会报错( unknown "1" variable),所以增加了 ? 将 $1 的值赋给了 $www减少跳转次数以上设置已经满足了实现结果,但是有一点瑕疵,就是 http://www.vvars.com 会先跳转到 https://www.chanvinxiao.com, 再跳转到 https://vvars.com ,进行二次跳转肯定是不如只需跳转一次的,所以最好让其直接一步到位,修改 http 的配置如下:server {listen 80;server_name ~^(?:www.)?(.+)$;return 301 https://$1$request_uri;}在 http 对应的 sever 中,把 server_name 也改为正则模式,并将 $host 用捕获的根域名 $1 取代www 在这里会直接弃掉,所以不需要捕获,使用 ?: 标示实现只分组不捕获,于是后面的根域名就成了 $1这样的结果是不管原来是否带 www,都统一跳转到不带 www 的 https 根域名总结以上配置中不需指定特定域名,可方便兼容和移植,使用了 Nginx 的以下特性:server_name 的正则匹配return 指令接收状态码和地址$host 和 $request_uri 嵌入变量以上就是利用nginx实现301跳转到https的根域名的详细内容
2021年03月16日
1,064 阅读
0 评论
0 点赞