什麼是Nginx的rewrite?php
實現URL地址重寫,比較複雜的write須要開發來完成,僞靜態處理實現是開發的工做,mysql
這rewrite寫在location中nginx
指令語法: rewrite regex relplacement[flag]正則表達式
rewrite ^/(.*) http://www.yunhello.cn/$1 permanetsql
rewrite # 固定關鍵字,開啓正則匹配規則, $1 表示前面()內匹配的內容apache
regex 部分是 ^/(.*) 這個是正則表達式,匹配全部,匹配成功後跳轉到http://www.yunhello.cn/$1, $1 是前面正則括號內匹配到的內容瀏覽器
permanet 永久重定向標記,即永久跳轉到後面的 http://www.yunhello.cn/$1 地址上,也就是跳轉到這個url中,又從新經過Nginx進行匹配bash
server { listen 80; server_name bbs.yunhello.cn; location / { rewrite ^/(.*)http://www.yunhello.cn/$1 permanet; } } # 這個rewrite是跳轉到新的站點上
除了 permanet 標記後,還有哪些?app
redirect 302 臨時重定向網站
permanet 301 永久重定向
last 本次規則匹配完,繼續向下匹配location
break 本次規則匹配完,不在向下匹配
Nginx Rewrite的企業應用場景
必須使用到
Nginx訪問認證
企業內部人員使用,企業後臺,mysql客戶端phpmyadmin,企業內部CRM,WIKI等網站平臺
放到 location中或者放到server中
auth_basic 提示
auth_basic_user_file 默認值 - , 接密碼認證文件,和rsync客戶端密碼文件格式同樣
站點後臺:
server { listen 80; server_name manage.etiantian.org; location / { auth_basic "hahaha" auth_basic_user_file conf/htpassd } } # 密碼文件: conf/htpassd name1:passwd1:comment # 用戶名:密碼:說明,這裏密碼是加密的,不能人工修改,經過apache的htpasswd命令建立 htpasswd -cb /application/nginx/conf/htpasswd user password # 建立用戶和密碼,指定存放文件,-c 指定文件, -b非交互式
這個rewrite功能是什麼呢,具體體現方向是什麼?
重寫url 和完成域名跳轉
具體方向是瀏覽器中網站地址框更好看了,也就是說只是更改了url顯示,還有跳轉的時候,先顯示原url再顯示跳轉到URL
403錯誤出現的緣由:
沒有首頁,或沒有讀這個文件的權限