rewrite常用的.htaccess规则举例(rewrite伪静态规则大全)

全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:920篇文章
  • 发布时间:2020年05月10日 11:05:10
  • 所属分类:html, PHP+MySql
  • 阅读次数:2838次阅读
  • 标签:

先解析一下典型的.htaccess文件:

# 开启URL重写

RewriteEngine on

# URL重写的作用域

RewriteBase /path/url

# 满足怎样的条件

RewriteCond %{HTTP_HOST} !^www\.oy51\.com$ [NC]

# 应用怎样的规则

RewriteRule .? http://www.oy51.com%{REQUEST_URI} [R=301,L]

来说说RewriteCond,首先有一个%,因为{HTTP_HOST}是一个apache变量,需要用%来指示。从!开始就是匹配的条件,支持 正则。!表示不等于,这句话的意思就是:如果HTTP_HOST不是www.oy51.com。后面的[NC](no case)表示忽略大小写,常见的还有:

[L](last):终止一系列的RewriteCond和RewriteRule

[R](redirect):触发一个显示的跳转,也可以指定跳转类型,如[R=301]

[F](forbidden):禁止查看特定文件,apache会触发403错误

1、主域名指向子目录

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www.)?oy51.com$

RewriteCond %{REQUEST_URI} !^/subfolder/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /subfolder/$1

RewriteCond %{HTTP_HOST} ^(www.)?oy51.com$

RewriteRule ^(/)?$ subfolder/index.php [L]

 2、规范www

①、全部统一到带www,例如将oy51.com统一到www.oy51.com

ewriteEngine on

RewriteCond %{HTTP_HOST} ^oy51\.com$ [NC]

RewriteRule ^(.*)$ http://www.oy51.com/$1 [L,R=301]

 ②、全部统一到不带www,例如将www.oy51.com统一到oy51.com

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.oy51\.com$ [NC]

RewriteRule ^(.*)$ http://oy51.com/$1 [L,R=301]

3、防止别人域名恶意解析

RewriteEngine On

RewriteCond %{HTTP_HOST} !(^www\.oy51\.com$) [NC]

RewriteRule ^(.*)$ http://www.oy51.com/$1 [L,R=301]

 4、启用Deflate

# 在.htaccess中加入下面代码给指定文件后缀启用Deflate,Apache2.0以上版本支持Deflate。

<IfModule mod_deflate.c>

<FilesMatch "\.(js|css)$">

SetOutputFilter DEFLATE

</FilesMatch>

</IfModule>

<FilesMatch "\.(js|css)$"> 

# 指定启用Deflate的文件后缀,增加的后缀用|隔开即可,例如 <FilesMatch "\.(js|css|html|php)$">

 5、设置默认首页及顺序

# 在.htaccess文件中加入以下后缀名(可以根据自身需求进行调整):

 

DirectoryIndex index.html index.htm index.php index.cgi 

6、禁止显示目录列表

# 如果目录没有默认首页文件,将会列出文件列表,可能造成安全隐患,

# 为避免这种情况发生,可以在.htaccess文档中键入以下命令,用以阻止目录列表的显示:

Options -Indexes 

7、设置目录及文件密码保护

# 给目录设置密码保护,在该目录建立一个.htaccess文件,放入如下内容:

AuthUserFile /opt/guide/www.idcspy.org/.htpasswd

AuthType Basic

AuthName "Member Page"

require valid-user

# 注:AuthUserFile 设置密码文件的路径。

 8、图片防盗链

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\.)?oy51\.com/ [NC]

RewriteRule \.(gif|jpg|png)$ - [F]

# 由于是基于HTTP_REFERER的验证,所以只能防止一般的图片盗链,因为HTTP_REFERER是比较容易伪造的.

 9、自定义404错误页面

# 如果用户输入了一个不存在的url,那么就显示自定义的错误页面

ErrorDocument 404 /404.html

# 其他同理

ErrorDocument 500 /500.html

 

————————————————

版权声明:本文为CSDN博主「全栈工程师 - 小柒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq15577969/java/article/details/90209900

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!