찾다
php教程php手册nginx rewrite常用示例

nginx rewrite常用示例

相信大家在日常运维工作中如果你用到nginx作为前端反向代理服务器的话,你会对nginx的rewrite又爱又恨,爱它是因为你搞定了它,完成了开发人员的跳转需求后你会觉得很爽,觉得真的很强大,恨它是因为当一些稀奇古怪跳转的需求时候你会没有头绪、百般调试、上网求神拜佛都搞不定的时候真是想死的心都有了,当然网上也有很多nginx rewrite的经典示例,但是我感觉对我的工作都没有太大的帮助。下面是我工作中遇到的一些rewrite示例。提供给大家分享。
一、访问http://www.abc.com正常,现在需要访问abc.com,直接跳转到http://www.abc.com。
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>server {</li><li>listen 80;</li><li>server_name abc.com;</li><li>access_log  off;</li><li>rewrite (.+) $scheme://www.$host$1 permanent;</li><li>}</li></ol>
二、如果你们域名是http://www.abc.com,现在想换一个域名http://www.def.com了,又不想失去之前域名的访问量,需要配置跳转。
首先需要在你的server_name里面把www.abc.com和www.def.cn都写上。
然后做如下配置:
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>location / {</li><li>if ($host = 'www.abc.com')</li><li>{</li><li>rewrite ^/(.*)$ http://www.def.com/$1 permanent;</li><li>}</li><li>}</li></ol>
三、跳转维护页面,比如今天维护,想挂一个维护页面,希望除某些特定的IP地址能正常访问,因为需要测试。其余所以的IP地址都是访问维护页面,这个需求我之前好像写过,但是今天写的有点不一样。在server里面添加如下内容:
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>set $rewrite true;</li><li>if ($remote_addr = "xxx.xxx.xxx.xxx") {</li><li>set $rewrite false;</li><li>}</li><li>if ($rewrite = true) {</li><li>rewrite (.+) http://www.abc.com/maintenance.html;</li><li>}</li><li>location = /maintenance.html {</li><li> root /var/vhost;</li><li>}<br /></li></ol>
四、比如现在你的域名是http://bbs.abc.com,现在将这个域名下面的帖子访问都跳转到http://www.abc.com/bbs,注意跳转后的参数也要保持一致。
比如:http://bbs.abc.com/post/addpost/913.shtml跳转到http://www.abc.com/bbs/post/addpost/913.shtml
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>location /post {</li><li>rewrite (.+) http://www.abc.com/bbs$1 permanent;</li><li>}</li></ol>
五、基于uri的跳转
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>if ($request_uri ~* ^/note\.php\?product_code=(.*)$) {</li><li>rewrite (.*) http://www.abc.com permanent;</li><li>}</li></ol>
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>if ($request_uri ~ ^/forum-(140|141|142|143|144|145|150|151|152|153|154|155|156|157|158|159|200|222|223|224|225|226|227|228)-(\d+).html$) {</li><li>rewrite (.*) http://www.abc.com/list permanent;</li><li>}</li></ol>
六、基于目录下面文件的跳转
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>location ~* /upload/.*\.php$ {</li><li>return 404;</li><li>}</li></ol>
七、最普通的url到url跳转
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>location ~* ^/ab/maintain/main.html {</li><li>rewrite (.+) http://www.abc.com/maintain/main.html permanent;</li><li>}</li></ol>
虽然例子举不全,可能还有一些其它更好的跳转示例,以后再补充。有不对的地方欢迎大家拍砖。







성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경