iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在nginx中使用rewrite 配置伪静态
  • 272
分享到

怎么在nginx中使用rewrite 配置伪静态

2023-06-08 01:06:23 272人浏览 安东尼
摘要

本篇文章为大家展示了怎么在Nginx中使用rewrite 配置伪静态,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不

本篇文章为大家展示了怎么在Nginx中使用rewrite 配置伪静态,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

正则表达式匹配,其中: 

* ~ 为区分大小写匹配 
* ~* 为不区分大小写匹配 
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 
文件及目录匹配,其中: 

* -f和!-f用来判断是否存在文件 
* -d和!-d用来判断是否存在目录 
* -e和!-e用来判断是否存在文件或目录 
* -x和!-x用来判断文件是否可执行 
flag标记有: 

* last 相当于Apache里的[L]标记,表示完成rewrite 
* break 终止匹配, 不再匹配后面的规则 
* redirect 返回302临时重定向 地址栏会显示跳转后的地址 
* permanent 返回301永久重定向 地址栏会显示跳转后的地址 
一些可用的全局变量有,可以用做条件判断(待补全) 

复制代码代码如下:


$args 
$content_length 
$content_type 
$document_root 
$document_uri 
$host 
$Http_user_agent 
$http_cookie 
$limit_rate 
$request_body_file 
$request_method 
$remote_addr 
$remote_port 
$remote_user 
$request_filename 
$request_uri 
$query_string 
$scheme 
$server_protocol 
$server_addr 
$server_name 
$server_port 
$uri 


结合QeePHP的例子 

复制代码代码如下:


if (!-d $request_filename) { 
rewrite ^/([a-z-A-Z]+)/([a-z-A-Z]+)/?(.*)$ /index.php?namespace=user&controller=$1&action=$2&$3 last; 
rewrite ^/([a-z-A-Z]+)/?$ /index.php?namespace=user&controller=$1 last; 
break; 


多目录转成参数 

复制代码代码如下:


abc.domian.com/sort/2 => abc.domian.com/index.php?act=sort&name=abc&id=2 

if ($host ~* (.*)\.domain\.com) { 
set $sub_name $1; 
rewrite ^/sort\/(\d+)\/?$ /index.php?act=sort&cid=$sub_name&id=$1 last; 


目录对换 

复制代码代码如下:


/123456/xxxx -> /xxxx?id=123456 
rewrite ^/(\d+)/(.+)/ /$2?id=$1 last; 


例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下: 

复制代码代码如下:


if ($http_user_agent ~ MSIE) { 
rewrite ^(.*)$ /nginx-ie/$1 break; 


目录自动加“/” 

复制代码代码如下:


if (-d $request_filename){ 
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent; 


禁止htaccess 

复制代码代码如下:


location ~/\.ht { 
deny all; 


禁止多个目录 

复制代码代码如下:


location ~ ^/(cron|templates)/ { 
deny all; 
break; 


禁止以/data开头的文件 
可以禁止/data/下多级目录下.log.txt等请求; 

复制代码代码如下:


location ~ ^/data { 
deny all; 


禁止单个目录 
不能禁止.log.txt能请求 

复制代码代码如下:


location /searchWord/cron/ { 
deny all; 


禁止单个文件 

复制代码代码如下:


location ~ /data/sql/data.sql { 
deny all; 


给favicon.ico和robots.txt设置过期时间; 
这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志 

复制代码代码如下:


location ~(favicon.ico) { 
log_not_found off; 
expires 99d; 
break; 


location ~(robots.txt) { 
log_not_found off; 
expires 7d; 
break; 


设定某个文件的过期时间;这里为600秒,并不记录访问日志 

复制代码代码如下:


location ^~ /html/scripts/loadhead_1.js
access_log off; 
root /opt/lampp/htdocs/WEB
expires 600; 
break; 


文件反盗链并设置过期时间 
这里的return 412 为自定义的http状态码,默认为403,方便找出正确的盗链的请求 
“rewrite ^/ https://file.lsjlt.com/upload/202306/07/k1t2azdew5r.jpg;”显示一张防盗链图片 
“access_log off;”不记录访问日志,减轻压力 
“expires 3D”所有文件3天的浏览器缓存 

复制代码代码如下:


location ~* ^.+\.(jpg|jpeg|gif|png|swf|rar|zip|CSS|js)$ { 
valid_referers none blocked *.ZZVIPS.com *.ZZVIPS.net localhost 208.97.167.194; 
if ($invalid_referer) { 
rewrite ^/ https://file.lsjlt.com/upload/202306/07/k1t2azdew5r.jpg; 
return 412; 
break; 

access_log off; 
root /opt/lampp/htdocs/web; 
expires 3d; 
break; 


只充许固定ip访问网站,并加上密码 

复制代码代码如下:


root /opt/htdocs/www; 
allow 208.97.167.194; 
allow 222.33.1.2; 
allow 231.152.49.4; 
deny all; 
auth_basic "C1G_ADMIN"; 
auth_basic_user_file htpasswd; 


将多级目录下的文件转成一个文件,增强seo效果 

复制代码代码如下:


/job-123-456-789.html 指向/job/123/456/789.html 
rewrite ^/job-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /job/$1/$2/jobshow_$3.html last; 


将根目录下某个文件夹指向2级目录 
如/shanghaijob/ 指向 /area/shanghai/ 
如果你将last改成permanent,那么浏览器地址栏显是/location/shanghai/ 

复制代码代码如下:


rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last; 


上面例子有个问题是访问/shanghai 时将不会匹配 

复制代码代码如下:


rewrite ^/([0-9a-z]+)job$ /area/$1/ last; 
rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last; 


这样/shanghai 也可以访问了,但页面中的相对链接无法使用, 
如./list_1.html真实地址是/area/shanghia/list_1.html会变成/list_1.html,导至无法访问。 

那我加上自动跳转也是不行咯 
(-d $request_filename)它有个条件是必需为真实目录,而我的rewrite不是的,所以没有效果 

复制代码代码如下:


if (-d $request_filename){ 
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent; 


知道原因后就好办了,让我手动跳转吧 

复制代码代码如下:


rewrite ^/([0-9a-z]+)job$ /$1job/ permanent; 
rewrite ^/([0-9a-z]+)job/(.*)$ /area/$1/$2 last; 


文件和目录不存在的时候重定向: 

复制代码代码如下:


if (!-e $request_filename) { 
proxy_pass http://127.0.0.1; 


域名跳转 

复制代码代码如下:


server 

listen 80; 
server_name jump.ZZVIPS.com; 
index index.html index.htm index.php; 
root /opt/lampp/htdocs/www; 
rewrite ^/ http://www.ZZVIPS.com/; 
access_log off; 


多域名转向 

复制代码代码如下:


server_name www.ZZVIPS.com www.ZZVIPS.net; 
index index.html index.htm index.php; 
root /opt/lampp/htdocs; 
if ($host ~ "ZZVIPS\.net") { 
rewrite ^(.*) http://www.ZZVIPS.com$1 permanent; 


三级域名跳转 

复制代码代码如下:


if ($http_host ~* "^(.*)\.i\.ZZVIPS\.com$") { 
rewrite ^(.*) http://top.yingjiesheng.com$1; 
break; 


域名镜向 

复制代码代码如下:


server 

listen 80; 
server_name mirror.ZZVIPS.com; 
index index.html index.htm index.php; 
root /opt/lampp/htdocs/www; 
rewrite ^/(.*) http://www.ZZVIPS.com/$1 last; 
access_log off; 


某个子目录作镜向 

复制代码代码如下:


location ^~ /zhaopinhui { 
rewrite ^.+ http://zph.ZZVIPS.com/ last; 
break; 

discuz ucenter home (uchome) rewrite 

rewrite ^/(space|network)-(.+)\.html$ /$1.php?rewrite=$2 last; 
rewrite ^/(space|network)\.html$ /$1.php last; 
rewrite ^/([0-9]+)$ /space.php?uid=$1 last; 
discuz 7 rewrite 

rewrite ^(.*)/arcHiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2 last; 
rewrite ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3 last; 
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3 last; 
rewrite ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro.php?$2=$3 last; 
rewrite ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3 last; 
rewrite ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2 last; 


给discuz某版块单独配置域名 

复制代码代码如下:


server_name bbs.ZZVIPS.com news.ZZVIPS.com; 

location = / { 
if ($http_host ~ news\.ZZVIPS.com$) { 
rewrite ^.+ http://news.ZZVIPS.com/forum-831-1.html last; 
break; 


discuz ucenter 头像 rewrite 优化 

复制代码代码如下:


location ^~ /ucenter { 
location ~ .*\.php?$ 

#fastcgi_pass unix:/tmp/php-cgi.sock; 
fastcgi_pass 127.0.0.1:9000; 
fastcgi_index index.php; 
include fcgi.conf; 


location /ucenter/data/avatar { 
log_not_found off; 
access_log off; 
location ~ /(.*)_big\.jpg$ { 
error_page 404 /ucenter/images/noavatar_big.gif; 

location ~ /(.*)_middle\.jpg$ { 
error_page 404 /ucenter/images/noavatar_middle.gif; 

location ~ /(.*)_small\.jpg$ { 
error_page 404 /ucenter/images/noavatar_small.gif; 

expires 300; 
break; 


jspace rewrite 

复制代码代码如下:


location ~ .*\.php?$ 

#fastcgi_pass unix:/tmp/php-cgi.sock; 
fastcgi_pass 127.0.0.1:9000; 
fastcgi_index index.php; 
include fcgi.conf; 


location ~* ^/index.php/ 

rewrite ^/index.php/(.*) /index.php?$1 break; 
fastcgi_pass 127.0.0.1:9000; 
fastcgi_index index.php; 
include fcgi.conf; 

上述内容就是怎么在nginx中使用rewrite 配置伪静态,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么在nginx中使用rewrite 配置伪静态

本文链接: https://www.lsjlt.com/news/250511.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在nginx中使用rewrite 配置伪静态
    本篇文章为大家展示了怎么在nginx中使用rewrite 配置伪静态,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不...
    99+
    2023-06-08
  • Yii2配置Nginx伪静态的方法
    这篇文章主要介绍了Yii2配置Nginx伪静态的方法,结合实例形式分析了Yii2框架针对Nginx伪静态的相关配置技巧,需要的朋友可以参考下本文实例讲述了Yii2配置Nginx伪静态的方法。分享给大家供大家参考,具体如下:主要检查以下代码:...
    99+
    2023-06-05
  • nginx伪静态规则如何配置
    要配置nginx的伪静态规则,可以在nginx的配置文件中使用location指令来实现。例如,如果你想要将所有以.html结尾的U...
    99+
    2023-08-15
    nginx
  • Nginx环境WeCenter伪静态怎么设置
    这篇文章主要介绍了Nginx环境WeCenter伪静态怎么设置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Nginx环境WeCenter伪静态怎么设置文章都会有所收获,下面我...
    99+
    2024-04-02
  • Nginx中怎么配置静态文件
    本篇文章为大家展示了Nginx中怎么配置静态文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。###################################...
    99+
    2024-04-02
  • 【wordpress】Wordpress在Apache/Nginx/IIS/Lighttpd环境下的伪静态配置
    目录 一、问题说明 二、解决方式 1、Apache 2、Nginx 3、IIS 4、Lighttpd 一、问题说明 解决各种环境下,页面存在但出现404错误。在Apache,Wordpress在安装过程中自动生成伪静态的代码,所以Ap...
    99+
    2023-08-31
    apache nginx php
  • nginx伪静态规则怎么定义
    这篇文章主要介绍了nginx伪静态规则怎么定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇nginx伪静态规则怎么定义文章都会有所收获,下面我们一起来看看吧。 1、ngin...
    99+
    2024-04-02
  • rewrite模块怎么在Nginx中使用
    rewrite模块怎么在Nginx中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。rewrite模块即ngx_http_rewrite_module模块,主要功能是改写...
    99+
    2023-06-06
  • 云服务器iis伪静态怎么配置
    要为云服务器上的IIS配置伪静态,您可以按照以下步骤进行操作:1. 打开云服务器上的IIS管理器。您可以通过在运行窗口中输入"ine...
    99+
    2023-09-22
    云服务器
  • Nginx怎么配置location与rewrite规则
    这篇文章主要讲解了“Nginx怎么配置location与rewrite规则”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx怎么配置location与...
    99+
    2024-04-02
  • 宝塔搭建网站怎么配置伪静态
    宝塔搭建网站配置伪静态的方法:打开宝塔管理界面,点击“网站”。在列表中,点击“网站名”打开网站设置对话框。再点击“伪静态”选项,即可配置伪静态。...
    99+
    2024-04-02
  • nginx gzip动态压缩和静态压缩怎么配置
    本文小编为大家详细介绍“nginx gzip动态压缩和静态压缩怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“nginx gzip动态压缩和静态压缩怎么配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-05
  • 国外vps怎么设置伪静态
    国外vps设置伪静态的方法:1、第一种方法是用winscp连接vps主机,在/usr/local/nginx/conf/vhost文件里添加网站的伪静态规则;2、第二种方法是下载IIS Rewrite组件,解压到适当的目录下,然后进行相应的...
    99+
    2024-04-02
  • vps主机怎么设置伪静态
    vps主机设置伪静态的方法:1、第一张方法是用winscp连接vps主机,在/usr/local/nginx/conf/vhost文件里添加网站的伪静态规则;2、第二种方法是下载IIS Rewrite组件,解压到适当的目录下,然后进行相应的...
    99+
    2024-04-02
  • 伪静态怎么设置301跳转
    伪静态设置301跳转的方法:在你的网站根目录.htaccess文件中添加以下代码,如果没有找到.htaccess文件,可自己新建一个上传即可,代码如下:RewriteEngine OnRewriteCond %{HTTP_HOST} !^x...
    99+
    2024-04-02
  • php空间怎么设置伪静态
    这篇文章主要介绍“php空间怎么设置伪静态”,在日常操作中,相信很多人在php空间怎么设置伪静态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php空间怎么设置伪静态”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-20
  • Apache中伪静态Rewrite的使用方法和URL重写规则表达式讲解
    目录一、安装rewrite模块二、配置文件httpd.conf中启用Rewrite三、在服务器中找到配置文件vhosts.conf,启用.htAccess四、在要启用伪静态的项目根目录下建立 .htaccess 文件五、...
    99+
    2022-11-20
    Apache 伪静态 Rewrite URL重写 Rewrite规则
  • 怎么在nginx中缓存静态文件
    这篇文章将为大家详细讲解有关怎么在nginx中缓存静态文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、准备事项我想你需要一个正常工作的 nginx 软件,就像这篇教...
    99+
    2024-04-02
  • PHP中怎么实现伪静态
    这期内容当中小编将会给大家带来有关PHP中怎么实现伪静态,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代码:<php //伪静态方法一   // l...
    99+
    2023-06-17
  • 阿里云服务器伪静态配置是什么
    阿里云服务器伪静态配置是指在阿里云服务器上配置一个动态网页的URL映射为一个静态网页的过程。这个过程是通过在阿里云服务器上设置一个特殊的配置文件来实现的,这个配置文件通常被叫做伪静态配置文件。 伪静态配置在实际应用中的作用:伪静态配置可以在...
    99+
    2023-10-29
    阿里 静态 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作