Apache 开启 Rewrite 模块
开启Rewrite模块
修改Apache主配置文件
- 去掉
LoadModule rewrite_module modules/mod_rewrite.so
前的# - 修改
<Directory>
配置段为Options Indexes FollowSymLinks
- 如果想要使用.htaccess文件,将网站目录配置段的
AllowOverride
改成All
.htaccess文件
- .htaccess⽂件(或者”分布式配置⽂件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。
RewriteEngine
- 打开或关闭运行时刻的重写引擎
RewriteEngine
- 为重写引擎定义规则
RewriteRule
- RewriteCond指令定义了一个规则的调价,在一个RewriteRule指令之前有一个或多个RewriteCond指令
RewriteCond
RewriteCond参数
'-d'
是一个目录[Directory]
'-f'
是一个常规的文件[File]
通过rewrite实现404定义
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? /404.php [L]
RewriteRule 参数
- 强制当前URL为被禁止的,即,立刻反馈一个HTTP响应代码403(被禁止的)
'forbiddenF'
(强制URL为被禁止的forbidden) - 它使Pattern忽略大小写,即在Pattern与当前URl匹配时,‘A-Z’和’a-z’没有区别
'nocaseNC'
(忽略大小写 no case) - 立即停止重写操作,并不再应用其他重写规则.这个标记可以阻止当前已被重写的URl被其后续的规则所重写
'lastL'
(最后一个URL规则的重写 last)
伪静态操作
RewriteEngine On
RewriteRule ^/?news_(\d+).html news.php?nid=$1 [NC,L]
防止图片盗链
如果不是从本网站请求图片,替换成logo.png
RewriteEngine On
RewriteCond ${HTTP_REFERER} !^$
RewriteCond ${HTTP_REFERER} !192.168.1.100 [NC]
RewriteRule .(jpg|png)$ logo.png
直接返回403无权操作
RewriteEngine On
RewriteCond ${HTTP_REFERER} !^$
RewriteCond ${HTTP_REFERER} !192.168.1.100 [NC]
RewriteRule \.(gif|jpg|jpeg\png\bmp) - [F]
隐藏网站主入口文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php&1