Articles of 重写

nginx不区分大小写重写

我试图让我的nginxredirect尽可能干净。 我明白〜*是不区分大小写的,但是我只能在例子2中使用它。 例1 rewrite ^/foobar http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect; 例子2 – 这个方法可行,但效率不如上面的线。 if ( $request_filename ~* foobar ) { rewrite ^ http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect; } 有没有办法做到不区分大小写的redirect与示例1没有得到它太泥泞? 谢谢。

从外部来源维护nginx中的redirect

我处于这种情况下,让我们的营销部门有机会保持自己的redirect。 到目前为止,他们将这些信息传递给了IT部门,我们在nginx.conf为他们维护了这些信息。 其中一些人对IIS中甚至Apache中的redirect非常熟悉,但是不能让他们直接访问nginxconfiguration。 我看到,没有nginx支持.htaccess文件,我可以访问,我也不希望授予对nginx包括的conf文件的写访问权限。 我预计,我们的营销将在几小时内打破我们的nginx设置。 有没有一个安全的可能性,而不让他们访问我们的负载平衡器的核心?

禁用nginx代理中的URL解码

当我浏览到此URL: http://localhost:8080/foo/%5B-%5D服务器( nc -l 8080 )按原样接收它: GET /foo/%5B-%5D HTTP/1.1 但是,当我通过nginx(1.1.19)代理这个应用程序: location /foo { proxy_pass http://localhost:8080/foo; } 通过nginx端口路由相同的请求被转发path解码: GET /foo/[-] HTTP/1.1 GETpath中的解码方括号导致目标服务器( HTTP状态400 – path中的非法字符… )中的错误在到达时未被转义。 有没有办法禁用URL解码或编码回来,以便目标服务器通过nginx路由时获得完全相同的path? 一些聪明的URL重写规则?

使用nginx重写“隐藏”.html文件扩展名

我通过nginx提供了一个静态网站,我的目标是取代如下所示的URL: http://foo.com/bar.html 同 http://foo.com/bar 关键是没有尾随斜线。 我目前正在使用位置别名做类似的事情,但这是很乏味的,因为它需要每个文件都有一个位置块,而且它还附加了一个斜线,因为nginx会将别名视为目录: location / { root /srv/www/foo/public_html; index index.html; } location /bar1 { alias /srv/www/foo/public_html/; index bar1.html; } location /bar2 { alias /srv/www/foo/public_html/; index bar2.html; } 等等。 我已经通读了关于重写的文档,而我似乎无法综合所说的内容和我需要做的事情。 我不是从阿帕奇背景进来的; nginx是我第一次进入web服务器,所以我敢肯定我错过了一些明显的东西,因为我的HTTP背景很弱。 预先感谢您提供的任何帮助。

如何使用HttpRewriteModule快速轻松地移除Nginx中的一部分URL?

我知道HttpRewriteModule ,但我真的不知道如何处理正则expression式,我需要将某个目录中的所有URLredirect到另一个目录 example.com/component/tag/whatever 至 example.com/tag/whatever 有人能告诉我如何在Nginx中做到这一点?

如何导出URL重写规则?

是否有可能导出IIS7的URL重写规则? 我正在设置一个内部使用(testing)网站的副本,并且想要复制所有URL重写规则,而不必手动input它们。 有一个导入选项,但没有明显的“导出”… 谢谢!

HAProxy reqrep删除后端请求的URI

真正的快速问题关于HAProxy reqrep。 我正在尝试重写/replace发送到后端的请求。 我有以下示例域和URI,都共享相同的域名,但不同的后端Web服务器池。 http://domain/web1 http://domain/web2 我想要web1去后端webfarm1,和web2去webfarm2。 目前这确实发生。 但是,当要求发送到后端时,我想剥离web1或web2 URI。 这是我的haproxy.cfg frontend webVIP_80 mode http bind :80 #acl routing to backend acl web1_path path_beg /web1 acl web2_path path_beg /web2 #which backend use_backend webfarm1 if web1_path use_backend webfarm2 if web2_path default_backend webfarm1 backend webfarm1 mode http reqrep ^([^\ ]*)\ /web1/(.*) \1\ /\2 balance roundrobin option httpchk […]

我怎样才能强制我的url始终以www开头?

我想确保用户来到www.mydomain.com即使他们通过别名mydomain.com到达。 这样我就可以控制子域上的Cookie,这样Google就可以看到一个域名,而不是一个url的大杂烩。 我怎样才能做到这一点与Apache?

在nginx日志中,nginx + PHP-FPM =“permission denied”错误13; configuration错误?

我已经在一台RHEL5服务器上运行了PHP 5.2.10下的nginx 0.7x + PHP-FPM,但是试图在第二个服务器上的PHP 5.3.3中绑定的PHP-FPM下复制该设置,每次发生GET都会出现许多错误。 FPM启动,并确认fastcgi正在监听9000,但每次我做一个GET,我在nginx日志中看到这个错误: 2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com" 准系统nginx.conf.default至less起作用。 这是我的nginx.conf server { listen 80; server_name dev.noisepages.com; root /home/noisepages/www; index index.html index.htm index.php; access_log logs/dev.access.log; error_log logs/dev.error.log; location / { if (-f $request_filename) { expires 30d; […]

Nginxvariables$ host,$ http_host和$ server_name有什么区别?

三个Nginxvariables$host , $http_host和$server_name什么$http_host ? 我有一个重写规则,我不知道我应该使用哪一个: location = /vb/showthread.php { # /vb/showthread.php?50271-What-s-happening&p=846039 if ($arg_p) { return 301 $scheme://$host/forum/index.php?posts/$arg_p/; } 我正在寻找一个答案,不只是说在你的重写规则中使用___variables,而且还解释了它们之间的理论差异。