This log is based on the Internet and daily usage experience.
Regular Expression Matching, where:
*~ Case-sensitive matching
*~ * Case-insensitive match
*!~ And !~ * Case-insensitive and case-insensitive
File and directory match, where:
*-F and! -F is used to determine whether a file exists.
*-D and! -D is used to determine whether a directory exists.
*-E and! -E is used to determine whether a file or directory exists.
*-X and! -X is used to determine whether a file is executable.
Flag labels include:
* Last is equivalent to the [L] Mark in Apache, indicating that rewrite is completed.
* The break terminates the match and does not match the subsequent rules.
* If redirect returns the 302 temporary redirection address bar, the redirected address is displayed.
* If permanent returns 301, the address bar of the permanent redirection will display the address after the jump.
Some available global variables can be used for condition determination (to be supplemented)
The code is as follows: |
Copy code |
$ 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 Example of combining 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; Convert multiple directories to parameters 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; } Directory swap /123456/xxxx->/xxxx? Id = 123456 Rewrite ^/(/d +)/(. +)/$2? Id = $1 last; For example, set nginx to redirect to the/nginx-ie directory when you use ie: If ($ http_user_agent ~ MSIE ){ Rewrite ^ (. *) $/nginx-ie/$1 break; } Automatically add "/" to the Directory If (-d $ request_filename ){ Rewrite ^/(. *) ([^/]) $ http: // $ host/$1 $2/permanent; } Disable htaccess Location ~ //. Ht { Deny all; } Prohibit multiple directories Location ~ ^/(Cron | templates )/{ Deny all; Break; } Prohibit files starting with/data You can disable/data/multi-level Directory. Log.txt and other requests; Location ~ ^/Data { Deny all; } Disable a single directory Unable to stop. Log.txt requests Location/searchword/cron /{ Deny all; } Prohibit a single file Location ~ /Data/SQL/data. SQL { Deny all; } Set the expiration time for favicon.icoand robots.txt; In this example, if favicon.icois set to 404 days, and Robots.txt is set to 7 days, error logs are not recorded. Location ~ (Favicon. ico ){ Log_not_found off; Expires 99d; Break; } Location ~ (Robots.txt ){ Log_not_found off; Expires 7d; Break; } Set the expiration time of a file. The value is 600 seconds and no access logs are recorded. Location ^ ~ /Html/scripts/loadhead_1.js { Access_log off; Root/opt/lampp/htdocs/web; Expires 600; Break; } File anti-leeching and set expiration time Here, return 412 is a custom http status code. The default value is 403, which helps you find the correct request for leeching. "Rewrite ^/yun_qi_img/leech.gif;" shows an anti-Leech image. "Access_log off;" does not record access logs, reducing pressure "Expires 3d" browser cache for all files for 3 days Location ~ * ^. +/. (Jpg | jpeg | gif | png | swf | rar | zip | css | js) $ { Valid_referers none blocked * .c1gstudio.com * .c1gstudio.net localhost 208.97.167.194; If ($ invalid_referer ){ Rewrite ^/yun_qi_img/leech.gif; Return 412; Break; } Access_log off; Root/opt/lampp/htdocs/web; Expires 3d; Break; }
|
Only use a fixed ip address to access the website and add a password.
The code is as follows: |
Copy code |
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;
|
Convert files under multi-level directories into one file to Improve seo performance
/Job-123-456-789.html to/job/123/456/789.html
Rewrite ^/job-([0-9] +)-([0-9] +)-([0-9] + )/. html $/job/$1/$2/jobshow_#3.html last;
Point a folder in the root directory to a level 2 Directory
For example,/shanghaijob/points to/area/shanghai/
If you change last to permanent, the address bar of the browser is/location/shanghai/
Rewrite ^/([0-9a-z] +) job/(. *) $/area/$1/$2 last;
The problem in the above example is that the access/shanghai will not match
Rewrite ^/([0-9a-z] +) job $/area/$1/last;
Rewrite ^/([0-9a-z] +) job/(. *) $/area/$1/$2 last;
In this way,/shanghai can also be accessed, but the relative link on the page cannot be used,
For example, if the actual address of./list_1.html is/area/shanghia/list_1.html, it will become/list_1.html and cannot be accessed.
I cannot add automatic jump.
The code is as follows: |
Copy code |
(-D $ request_filename) it has a condition that it must be a real directory, and my rewrite is not, so it has no effect If (-d $ request_filename ){ Rewrite ^/(. *) ([^/]) $ http: // $ host/$1 $2/permanent; }
|
After knowing the reason, let me jump to it manually.
The code is as follows: |
Copy code |
Rewrite ^/([0-9a-z] +) job $/$ 1job/permanent; Rewrite ^/([0-9a-z] +) job/(. *) $/area/$1/$2 last;
|
Redirection when the file and directory do not exist:
The code is as follows: |
Copy code |
If (! -E $ request_filename ){ Proxy_pass http: // 127.0.0.1; }
|
Domain jump
The code is as follows: |
Copy code |
Server { Listen 80; Server_name jump.c1gstudio.com; Index index.html index.htm index. php; Root/opt/lampp/htdocs/www; Rewrite ^/http://www.111cn.net /; Access_log off; }
|
Multi-domain redirection
The code is as follows: |
Copy code |
Server_name www.c1gstudio.com www.c1gstudio.net; Index index.html index.htm index. php; Root/opt/lampp/htdocs; If ($ host ~ "C1gstudio/. net "){ Rewrite ^ (. *) http://www.c1gstudio.com $1 permanent; }
|
Third-level domain jump
The code is as follows: |
Copy code |
If ($ http_host ~ * "^ (. *)/. I/. c1gstudio/. com $ "){ Rewrite ^ (. *) http://top.yingjiesheng.com $1; Break; }
|
Domain name mirror
The code is as follows: |
Copy code |
Server { Listen 80; Server_name pai.c1gstudio.com; Index index.html index.htm index. php; Root/opt/lampp/htdocs/www; Rewrite ^/(. *) http://www.c1gstudio.com/#1 last; Access_log off; }
|
A subdirectory for mirroring
The code is as follows: |
Copy code |
Location ^ ~ /Zhaopinhui { Rewrite ^. + http://zph.c1gstudio.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; Configure a domain name for a forum in discuz Server_name bbs.c1gstudio.com news.c1gstudio.com; Location = /{ If ($ http_host ~ News/.c1gstudio.com $ ){ Rewrite ^. + http://news.c1gstudio.com/forum-831-1.html last; Break; } } Optimization of discuz ucenter profile rewrite Location ^ ~ /Ucenter { Location ~ . */. Php? $ { # Fastcgi_pass unix:/tmp/php-cgi.sock; Fastcgi_pass 127.0.0.1: 9000; Fastcgi_index index. php; Fcinclude GI. 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; Fcinclude GI. conf; } Location ~ * ^/Index. php/ { Rewrite ^/index. php/(. *)/index. php? $1 break; Fastcgi_pass 127.0.0.1: 9000; Fastcgi_index index. php; Fcinclude GI. conf; } |
Appendix common cms replacement
WordPress pseudo-static rules
The code is as follows: |
Copy code |
Location /{ Index index.html index. php; If (-f $ request_filename/index.html ){ Rewrite (. *) $1/index.html break; } If (-f $ request_filename/index. php ){ Rewrite (. *) $1/index. php; } If (! -F $ request_filename ){ Rewrite (. *)/index. php; } }
|
--------
PHPCMS pseudo-static rules
The code is as follows: |
Copy code |
Location /{ ### PHPCMS pseudo-static rewrite rules Rewrite ^ (. * show-(%0-9%%%%%%-(%0-9%%%%%%.html $1/show. php? Itemid = $2 & page = $3; Rewrite ^ (. * javaslist-(%0-9%%%%%%-(%0-9%%%%%%.html $1/list. php? Catid = $2 & page = $3; Rewrite ^ (. * show-(%0-9%%%%%%.html $1/show. php? Specialid = $2; #### PHPWind pseudo-static rewrite rules Rewrite ^ (. *)-htm-(. *) $ 1.php? $2 last; Rewrite ^ (. *)/simple/([a-z0-9_00000000.html) $1/simple/index. php? $2 last; }
|
-------------
ECSHOP pseudo-static rules
The code is as follows: |
Copy code |
If (! -E $ request_filename) { Rewrite "^/index.html"/index. php last; Rewrite "^/category $"/index. php last; Rewrite "^/feed-c ([0-9] +). xml $"/feed. php? Cat = $1 last; Rewrite "^/feed-B ([0-9] +). xml $"/feed. php? Brand = $1 last; Rewrite "^/feed. xml $"/feed. php last; Rewrite "^/category-([0-9] +)-B ([0-9] +)-min ([0-9] +) -max ([0-9] +)-attr ([^-] *)- ([0-9] +)-(. +)-([a-zA-Z] +) (. * ).html $ "/category. php? Id = $1 & brand = $2 & price_min = $3 & price_max = $4 & filter_attr = $5 & page = $6 & sort = $7 & order = $8 last; Rewrite "^/category-([0-9] +)-B ([0-9] +)-min ([0-9] +) -max ([0-9] +)-attr ([^-] *) (. * Developer.html $ "/category. php? Id = $1 & brand = $2 & price_min = $3 & price_max = $4 & filter_attr = $5 last; Rewrite "^/category-([0-9] +)-B ([0-9] +)-([0-9] + )-(. +)-([a-zA-Z] + )(. * pai.html $" /Category. php? Id = $1 & brand = $2 & page = $3 & sort = $4 & order = $5 last; Rewrite "^/category-([0-9] +)-B ([0-9] +)-([0-9] + )(. * pai.html $ "/category. php? Id = $1 & brand = $2 & page = $3 last; Rewrite "^/category-([0-9] +)-B ([0-9] +) (. * ).html $"/category. php? Id = $1 & brand = $2 last; Rewrite "^/category-([0-9] +) (. * ).html $"/category. php? Id = $1 last; Rewrite "^/goods-([0-9] +) (. * ).html"/goods. php? Id = $1 last; Rewrite "^/article_cat-([0-9] +)-([0-9] + )-(. +)-([a-zA-Z] + )(. * pai.html $" /Article_cat.php? Id = $1 & page = $2 & sort = $3 & order = $4 last; Rewrite "^/article_cat-([0-9] +)-([0-9] +) (. * ).html $"/article_cat.php? Id = $1 & page = $2 last; Rewrite "^/article_cat-([0-9] +) (. * ).html $"/article_cat.php? Id = $1 last; Rewrite "^/article-([0-9] +) (. * example .html $"/article. php? Id = $1 last; Rewrite "^/second" /Brand. php? Id = $1 & cat = $2 & page = $3 & sort = $4 & order = $5 last; Rewrite "^/brand-([0-9] +)-c ([0-9] +)-([0-9] + )(. * pai.html "/brand. php? Id = $1 & cat = $2 & page = $3 last; Rewrite "^/brand-([0-9] +)-c ([0-9] +) (. * ).html"/brand. php? Id = $1 & cat = $2 last; Rewrite "^/brand-([0-9] +) (. * example .html"/brand. php? Id = $1 last; Rewrite "^/tag-(. * mongo.html"/search. php? Keywords = $1 last; Rewrite "^/snatch-(%0-9%%%%%.html $"/snatch. php? Id = $1 last; Rewrite "^/group_buy-(%0-9%%%%%.html $"/group_buy.php? Act = view & id = $1 last; Rewrite "^/auction-(%0-9%%%%%.html $"/auction. php? Act = view & id = $1 last; Rewrite "^/exchange-id ([0-9] +) (. * login .html $"/exchange. php? Id = $1 & act = view Last; Rewrite "^/exchange-([0-9] +)-min ([0-9] +)-max ([0-9] +) -([0-9] + )-(. +)-([a-zA-Z] +) (. * Login .html $ "/exchange. php? Cat_id = $1 & integral_min = $2 & integral_max = $3 & page = $4 & sort = $5 & order = $6 last; Rewrite ^/exchange-([0-9] +)-([0-9] + )-(. +)-([a-zA-Z] + )(. * pai.html $" /Exchange. php? Cat_id = $1 & page = $2 & sort = $3 & order = $4 last; Rewrite "^/exchange-([0-9] +)-([0-9] +) (. * ).html $"/exchange. php? Cat_id = $1 & page = $2 last; Rewrite "^/exchange-([0-9] +) (. * login .html $"/exchange. php? Cat_id = $1 last; }
|
-------------
SHOPEX pseudo-static rules
The code is as follows: |
Copy code |
Location /{ If (! -E $ request_filename ){ Rewrite ^/(. +. (html | xml | json | htm | php | jsp | asp | shtml) $/index. php? $1 last; } }
|
-----------------
Discuz 7 pseudo-static rules
The code is as follows: |
Copy code |
Rewrite ^/archiver/(fid | tid0000-0000w-00000000.html) $/archiver/index. php? $1 last; Rewrite ^/forum-(%0-9%%%%-(%0-9%%%%%%.html $/forumdisplay. php? Fid = $1 & page = $2 Last; Rewrite ^/thread-(0-9000000000000-(0-9000000000000-(0-90000000000000000.html $/viewthread. php? Tid = $1 & extra = page = $3 & page = $2 last; Rewrite ^/space-(username | uid316-(.20.0000.html $/space. php? $1 = $2 last; Rewrite ^/tag-(.20.20..html $/tag. php? Name = $1 last; ------------- DiscuzX2.0 pseudo-static # Enable RewriteEngine mode RewriteEngine On # Modify/discuz in the following statement to your Forum directory address. If the program is placed in the root directory, set /Modify discuz/ RewriteBase/ # Do not modify Rewrite system rules RewriteCond % {QUERY_STRING} ^ (. *) $ RewriteRule implements topic-(.20.20..html $ portal. php? Mod = topic & topic = $1 & % 1 RewriteCond % {QUERY_STRING} ^ (. *) $ RewriteRule into article-(%0-9%%%%%-(%0-9%%%%%%.html $ portal. php? Mod = view & aid = $1 & page = $2 & % 1 RewriteCond % {QUERY_STRING} ^ (. *) $ RewriteRule used forum-(w00000000-(%0-9000000000000.html $ forum. php? Mod = forumdisplay & fid = $1 & page = $2 & % 1 RewriteCond % {QUERY_STRING} ^ (. *) $ RewriteRule implements thread-(%0-9%%%%%%-(%0-9%%%%%%%%%%%.html $ forum. php? Mod = viewthread & tid = $1 & extra = page = $3 & page = $2 & % 1 RewriteCond % {QUERY_STRING} ^ (. *) $ RewriteRule into group-(%0-9%%%%%-(%0-9%%%%%%.html $ forum. php? Mod = group & fid = $1 & page = $2 & % 1 RewriteCond % {QUERY_STRING} ^ (. *) $ RewriteRule ^ space-(username | uid316-(.20.0000.html $ home. php? Mod = space & $1 = $2 & % 1 RewriteCond % {QUERY_STRING} ^ (. *) $ RewriteRule implements blog-(%0-9%%%%%-(%0-9%%%%%%.html $ home. php? Mod = space & uid = $1 & do = blog & id = $2 & % 1 RewriteCond % {QUERY_STRING} ^ (. *) $ RewriteRule ^ archiver/(fid | tid316-(%0-9%%%%%.html $ archiver/index. php? Action = $1 & value = $2 & % 1 |