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 |