我一直在使用Apache HTTP服务器已经有相当长的一段时间了,最终转向静态内容服务器以及其他dynamic内容机器。
我想知道,nginx是否支持“.htaccess”文件,以及像mod_rewrite?
由于我习惯的语法,我想知道(语法)差异是什么,学习曲线是从Apacheconfiguration到nginx。
nginx重写语法比mod_rewrite中的对应语言更清晰:
mod_rewrite规则:
RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]
成为nginx:
rewrite ^/[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 last;
但没有.htaccess支持…
编辑:另一个例子如何在nginx中支持http://example.com/~username/url:
location ~ /~([a-zA-Z0-9]*)/(.*) { root /home/; autoindex on; index index.html; rewrite ^/~([a-zA-Z0-9]*)/(.*)$ /$1/www/$2 break; }
nginx确实提供了重写function,请检查NginxHttpRewriteModule
你想用.htaccess做什么? 您可以使用NginxHttpAuthBasicModule设置nginx进行基本身份validation,但AFAIKconfiguration指令只能存储在nginx.conf
这似乎是nginx确实有一个mod_rewrite equivelent和文档可以在这里find。 我自己并没有使用nginx,但文档看起来像configuration是完全不同的,但不应该太难理解它在做什么。 维基似乎有很多例子。
我无法回答,如果你可以有每个目录configuration文件,如你可以用Apache。 如果可以的话,也不会让我感到惊讶,因为人们使用apache来期待。
NGINX DOES支持通过'include'指令在许多文件中进行configuration。 基本上,它加载一个子configuration,并把它放在适当的位置。 它也支持小丑angular色,所以很容易一次性加载很多angular色。
唯一的限制(在我看来)是你需要在configuration改变时重新加载。 因此,任何拥有一个configuration的用户都可能需要重新加载nginxconfiguration的权限:
/etc/ini.d/nginx force-reload(在centos上)
我真的不知道是否有办法避免这种情况,或者采取不同的做法,因为我在许多带有许多应用程序(虚拟主机)的服务器上使用NGINX。 这意味着NGINX在共享主机上并不理想。
不过,我真的很喜欢NGINX,因为configuration比讨厌的XML文件更清晰。 味道的问题我猜。 另一个好处就是速度,如果对你来说很重要的话。
祝你好运mig