nginx里使用伪静态是直接在nginx.conf 中写规则的,并不需要像apache要开启写模块(mod_rewrite)才能进行伪静态。
nginx只需要打开nginx.conf配置文件,在server里面写需要的规则即可。
#下面就是伪静态了
然后重启nginx服务器伪静态就生效了,这种维护起来很是不方便我们可以把它写在外部文件如bbs_nginx.conf中
在/home/www/bbs目录下创建bbs_nginx.conf文件并写入以下代码:
然后在上面的代码后面加上如下代码:
这样网站根目录中的bbs_nginx.conf伪静态规则,即可实现单独管理。
下面是一个实例:
1. 在使用.htaccess文件的目录下新建一个.htaccess文件,如下面一个Discuz论坛目录:
2. 在里面输入规则,我这里输入Discuz的伪静态规则(这里仅增加Discuz的伪静态规则):
wq保存退出。
3. 修改nginx配置文件:
4. 在需要添加伪静态的虚拟主机的server{}中引入.htaccess文件:
wq保存退出。
5. 重新加载nginx配置文件:
Nginx常用Rewrite伪静态规则:
伪静态规则是我们做伪静态的一个非常重的参数了,如果我们能理解得越多就可以快速的写出最优的伪静态代码了,下面给大家整理了一些例子,希望能给你有帮助。
一些可用的全局变量有,可以用做条件判断(待补全)
结合QeePHP的例子
多目录转成参数
目录对换
目录自动加“/”
禁止htaccess
禁止多个目录
禁止以/data开头的文件
可以禁止/data/下多级目录下.log.txt等请求;
禁止单个目录
不能禁止.log.txt能请求
禁止单个文件
给favicon.ico和robots.txt设置过期时间;
这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志
设定某个文件的过期时间;这里为600秒,并不记录访问日志
文件反盗链并设置过期时间
这里的return 412 为自定义的http状态码,默认为403,方便找出正确的盗链的请求
只允许固定ip访问网站,并加上密码
将多级目录下的文件转成一个文件,增强seo效果
将根目录下某个文件夹指向2级目录
上面例子有个问题是访问/shanghai 时将不会匹配
知道原因后就好办了,让我手动跳转吧
文件和目录不存在的时候重定向:
域名跳转
多域名转向
三级域名跳转
域名镜像
某个子目录作镜像
discuz ucenter home (uchome) rewrite
附现在常用cms替换
WordPress伪静态规则:
PHPCMS伪静态规则:
ECSHOP伪静态规则:
SHOPEX伪静态规则 :
SaBlog 2.0:
Discuz 7伪静态规则 :
Typecho:
复制代码 代码如下:
实例:shopex启用伪静态
location /
{
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?$1 last;
}
}
……
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210936.html原文链接:https://javaforall.net
