当前位置:首页 > System知识 > 正文内容

ubuntu中利用apache做301重定向.htaccess文件的方法

文件:项目根目录下.htaccess

作用:http 301 https ssl

          80端口 301 443 端口

          不带 www 301 带 wwww 

说明:

先要明白被动关系,哪个是被转向的域名(如:顶级域名,我们称为不带 www 的),哪个是定向的目标域名(如:二级域网,我们常称带 www 的);301重定向网站设置,是将某个域名永久性地转向另一个域名,例如有两个域名,那么301重定向就是将前者转向到后者,这里面的转向包括域名跳转以及权重转移。但是,但是这也许会对你网站的SEO优化方面带来些负面影响,对你的正常访问不会带来多大的影响,当你选择要去做301的时候,我们往下看。

友情提示:::有多个规则,请优先301重定向规则(第一个是条件,第二个是重写规则)。如果.htaccess文件内容如下:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(uuucd\.cn)(:80)? [NC]
RewriteRule ^(.*) https://www.uuucd.cn/$1 [R=301,L]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


解释:

---------------------------------------------------------------------------------

将不带三个www的跳转到带三个 www的规则:顶级域名跳转二级域名

RewriteCond %{HTTP_HOST} ^(uuucd\.cn)(:80)? [NC]

RewriteRule ^(.*) https://www.uuucd.cn/$1 [R=301,L]


//%{HTTP_HOST}

如果输入的网址

//[R=301,L]

R表示Response Cose(响应代码),301表示永久重定向,L表示last(最后一条规则)


---------------------------------------------------------------------------------------------

将访问端口全跳转到https:http 301重定向到 https

RewriteCond %{SERVER_PORT} !^443$

RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]


----------------------------------------------------------------------------------

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]



//%{REQUEST_FILENAME}表示请求的文件名。


RewriteCond %{REQUEST_FILENAME} !-f

//如果文件存在,就直接访问文件,不进行下面的RewriteRule。!-f表示:不是一个文件


RewriteCond %{REQUEST_FILENAME} !-d

//如果目录存在就直接访问目录不进行RewriteRule。!-d表示:不是一个目录


同理举例:

RewriteCond %{REQUEST_URI} !^.*(.css|.js|.gif|.png|.jpg|.jpeg)$ #如果是这些后缀的文件,就直接访问文件,不进行Rewrite


RewriteRule . /index.php [L]

//表示当前目录,用于 Apache 重写规则 URL 后面不带文件名(index.php 之类的)

[L] 这是最后一个匹配项,不再往下匹配

[R]相当与redirect [NC]不区分大小写。


//RewriteEngine on

将RewriteEngine引擎设置为on,就是让url重写生效-启动URL重写引擎


//RewriteBase 

设置的相对路径


//RewriteCond 

指令作用于定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模式(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。


//Rewriterule

是Rewrite中的一种规则。一种服务器的重写脉冲技术,它使得服务器可以支持 URL 重写,是一种最新流行的服务器技术。参数详解:

1) R 强制外部重定向,后面可以代301或302跳转。

2) F 禁用URL,返回403HTTP状态码。

3) G 强制URL为GONE,返回410HTTP状态码。

4) P 强制使用代理转发。

5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。

6) N 重新从第一条规则开始运行重写过程。

7) C 与下一条规则关联。

8) T=MIME-type(force MIME type) 强制MIME类型。

9) NS 只用于不是内部子请求。

10) NC 不区分大小写。

11) QSA 追加请求字符串。

12) NE 不在输出转义特殊字符


如上所述有误,或建议还请留言指出!!!

扫描二维码推送至手机访问。

版权声明:本文由uuucd.cn发布,如需转载请注明出处。

本文链接:https://www.uuucd.cn/system/58.html

返回列表

上一篇:Windows10 截屏自带的快捷键

没有最新的文章了...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。