[服务器]Nginx 一些常用的 URL 重写方法

2010年6月27日星期日 | | |

1. 在 Apache 的写法

1. 在 Apache 的写法

RewriteCond  %{HTTP_HOST}  nginx.org
RewriteRule (.*) http://www.nginx.org$1

在 Nginx 可以对应写成:

server {
listen 80;
server_name www.nginx.org nginx.org;
if ($http_host = nginx.org) {
rewrite (.*) http://www.nginx.org$1;
}
...
}

但 Nginx 作者更建议的方法是:

server {
listen 80;
server_name nginx.org;
rewrite ^ http://www.nginx.org$request_uri?;
}

server {
listen 80;
server_name www.nginx.org;
...
}

2. 在 Mongrel的写法:

DocumentRoot /var/www/myapp.com/current/public

RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ %{DOCUMENT_ROOT}/system/maintenance.html [L]

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ $1 [QSA,L]

RewriteCond %{REQUEST_FILENAME}/index.html -f
RewriteRule ^(.*)$ $1/index.html [QSA,L]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1/index.html [QSA,L]

RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]

在 Nginx可对应写成

location / {
root /var/www/myapp.com/current/public;

try_files /system/maintenance.html
$uri $uri/index.html $uri.html
@mongrel;
}

location @mongrel {
proxy_pass http://mongrel;
}

这个就比Apache 的简化多了。

 
From:http://edu.codepub.com/2010/0202/20281.php
 
我的QQ空间
如何避免zen cart tell a friend 被人利用
发现有朋友的网站功能被恶意利用了,即通过程序手段自动借用其某...
 

0 评论:


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]