nginx上配置.htaccess伪静态规则
在apache上.htaccess转向,只要apache编译的时候指明支持rewrite模块即可。
在Nginx中,不支持直接使用.htaccess文件配置服务器。但可以通过在Nginx的配置文件中添加相应的指令来实现类似于.htaccess的功能。
nginx要在配置文件中include .htacces文件就可以实现相同的功能了。
修改.htaccess文件,
因为apache的rewrite转向规则跟nginx的转向规则还是有一些不一样的,典型的不一样有nginx的根目录需要写在每行转向的地址前,每行规则必须以分号(;)结束,301或者404等跳转使用不同的格式。修改nginx的配置文件,增加include该.htaccess文件
1
2
3
4
5
6
7
8# 打开对应的配置文件
vi /etc/nginx/sites-available/test
# 引入规则文件
location / {
# 自己的规则文件路径
include /var/www/html/mks_gw_default/.htaccess;
}测试并重启
1 | nginx -t; |
4、常见的.htaccess应用举例(部分例子引自四个例子实战讲解.htaccess文件rewrite规则)
4.1防止盗链,如果来得要访问jpe jpg bmp png结尾的url 用户不是来自我们的网站,那么让他看一张我们网站的展示图片。
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
4.2 网站升级的时候,只有特定IP才能访问,其他的用户将看到一个升级页面
RewriteEngine on
RewriteCond %{REQUEST_URI} !/upgrade.html$
RewriteCond %{REMOTE_HOST} !^24.121.202.30
RewriteRule $ http://www.nbphp.com/upgrade.html [R=302,L]
4.3把老的域名转向新域名
redirect from old domain to new domain
RewriteEngine On
RewriteRule ^(.*)$http://www.yourdomain.com/$1[R=301,L]
5、一些其他功能
5.1 引出错误文档的目录
ErrorDocument 400 /errors/badrequest.html
ErrorDocument 404 http://yoursite/errors/notfound.html
ErrorDocument 401 “Authorization Required
5.2 Blocking users by IP 根据IP阻止用户访问
order allow,deny
deny from 123.45.6.7
deny from 12.34.5. (整个C类地址)
allow from all
5.3 防止目录浏览
disable directory browsing
Options All -Indexes
5.4设置默认首页
serve alternate default index page
DirectoryIndex about.html
5.5 把一些老的链接转到新的链接上——搜索引擎优化SEO
Redirect 301 /d/file.htmlhttp://www.htaccesselite.com/r/file.html
5.6为服务器管理员设置电子邮件。
ServerSignature EMail