休息之间有什么区别;最后;在nginx重写?

时间:2015-02-20 07:47:43

标签: nginx rewrite

我是NGINX的新人。从阿帕奇搬走了。在htaccess apapche它工作正常。我已经尝试了一些转换器,并没有像阿帕奇一样工作。一些转换器使用打破其他使用last.i尝试了很多小时。这是我的htaccess。感谢

# 404 ERROR NOT FOUND PAGE
ErrorDocument 404 /404.php

# 301 REDIRECT add WWW
RewriteCond %{HTTP_HOST} ^website.com$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [r=301,nc]

# IP Canonicalization/ change IP to domain name
RewriteCond %{HTTP_HOST} ^111\.222\.333\.444
RewriteRule (.*) http://www.website.com/$1 [R=301,L]

# NO rewrite for exact file/folder name. ex: website.com/index.php and website.com/admin
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# modul. ex: website.com/news and website.com/news/page/3
RewriteRule ^([^/]+)/?$ index.php?mod=$1 [QSA,L]
RewriteRule ^([^/]+)/page/([0-9]+)/?$ index.php?mod=$1&page=$2 [QSA,L]

#detail content. ex: website.com/news/123/title-news.html or website.com/news/123/title-news or website.com/news/123
RewriteRule ^([^/]+)/([0-9]+)/[^/]+\.html$ index.php?mod=$1&id=$2 [QSA,L]
RewriteRule ^([^/]+)/([0-9]+)/([^/]+)/?$ index.php?mod=$1&id=$2 [QSA,L]
RewriteRule ^([^/]+)/([0-9]+)/?$ index.php?mod=$1&id=$2 [QSA,L]

非常感谢。

2 个答案:

答案 0 :(得分:6)

来自官方网站:http://wiki.nginx.org/HttpRewriteModule#rewrite

休息之间的区别;最后

last - 完成重写指令的处理,之后搜索相应的URI和位置

break - 完成重写指令的处理并通过不进行任何位置查找和内部跳转来打破位置查找周期

答案 1 :(得分:0)

Module ngx_http_rewrite_module说:

最后

  

停止处理当前的ngx_http_rewrite_module指令集   并开始搜索与更改的URI匹配的新位置;

断裂

  

停止处理当前的ngx_http_rewrite_module指令集   和break指令一样;

最后是通常的方式并且经常使用重写方式而不是中断