我是nginx的新手,我重写了一些指令,把主机名redirect到其他主机名。 我想保留在redirect的请求中的URI,例如http://www.johntate.org/blog转到http://johntate.org/blog等等。 目前我只有这个… server { listen 80; server_name www.johntate.org; rewrite / http://johntate.org/; } 我想要一些更复杂的东西来保存请求并转发它。
我试图让基于codeigniter的nginx运行的网站。 有些部分工作,但有些失败。 我注意到在访问日志index.php有时有两个斜杠末尾insted我也无法正确地得到我的post(返回404)。 我的nginx conf对于我的默认站点如下(这是服务器上的唯一一个) server { server_name xxx.com; return 301 $scheme://www.xxx.com$request_uri; } server { root /srv/www/xxx; index index.php index.html index.htm; server_name www.xxx.com; # removes trailing "index" from all controllers if ($request_uri ~* index/?$) { rewrite ^/(.*)/index/?$ /$1 permanent; } if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } location \ { try_files $uri […]
好吧,所以我想出了一个很好的主意,运行带有重写规则的W2012 IIS8来为我做一些反向代理,不是因为它是最好的select,而是因为我不想另一个盒子解决另一个问题。 我设法让所有这些都非常漂亮地运行,有两个子目录链接到两个后端Linux服务器,所有的出站标记似乎都被重写了,就像应该一样。 直到我试图login,并意识到它跳过一些表单域。 在漫长的一夜之后,我设法find了什么触发了重写引擎不处理这种情况下的表单,而更多的是与连字符或下划线相关的属性。 我的Linux网站正在生产的forms包含该行 <form accept-charset="UTF-8" action="/login" … 当然包含一个hyphened属性。 所以,我着手弄明白这个: /test/default.htm <html> <a href="/ahrefpage.htm">This ahref has no dummy attribute</a> </br> <a dummy="x" href="/ahrefpage.htm">This ahref has a dummy attribute</a> </br> <a dum-my="x" href="/ahrefpage.htm">This ahref has a hyphen dummy attribute</a> </br> <a dum_my="x" href="/ahrefpage.htm">This ahref has an underscore dummy attribute</a> </br> </html> 用下面的web.config <?xml version="1.0" […]
我正在尝试为我的网站设置重写。 我已经摆弄了这么多天,但不能让它正常工作。 这是我正在寻找的东西: 原始url: site.com/searchresults.aspx?categoryid=6 期望的url: site.com/products/books/school 除了这个完全匹配,我还有50个没有模式。 我是否需要为他们每个人设置完全匹配规则,还是有一个简捷的方法来做到这一点? 谢谢
我试图用nginx将子文件夹redirect到另一个子文件夹。 困难的部分是从显示目标子文件夹中删除,因为它是一个ruby应用程序,而不是一个真正的根文件夹。 他们都在同一台服务器上,我明显控制这两个域 例如:www.example1.com/exampleredirect到www.example2.com 我做的最远,但我知道这是不正确的.. if ($request_uri ~* ^\/example) { rewrite ^\/example http://example.com permanent; } 记住没有物理根源是很重要的。
我是一个编写单页JS应用程序的软件开发人员。 我绝不是系统pipe理员,请耐心等待。 我想要完成的是在用户点击我的网站时使用两种潜在常见/不需要的URL模式之一发生的redirect。 mysite.com/index.html – >redirect到mysite.com mysite.com/path/they/remember – >redirect到哈希版本:mysite.com/#/path/they/remember 我尝试了各种方法,但我一直在redirect循环运行。 这是我目前的configuration: 注意:您会注意到/ api还需要通过轻量级oauth代理在内部redirect所有请求,所以无论使用哪种解决scheme都不能中断此redirect。 server { # Redirect all requests through /api/ to apiproxy.php location /api { rewrite ^/api/?(.*)$ /apiproxy.php/$1 last; } location / { index index.html } # use case #1 (combined with use case #2 optionally, a url such as mysite.com/index.html/path/they/remember) location ~ /index.html/?(.*) […]
我正在运行Nginx 1.5.6,我使用Simple Machines Forum软件。 大多数重写规则似乎都正常工作,除了RSS源。 在我的Nginxconfiguration中,我有下面这行应该处理包含“.xml”的URL: rewrite ^/forum/(\.xml|xmlhttp)/?$ "/forum/index.php?pretty;action=$1" last; 上述规则为主论坛生成以下URL,该论坛返回403错误: http ://www.mydomain.com/forum/.xml/?type= rss 我想重写规则来产生这种types的URL,它返回代码200(一个真实的网页): http : //www.mydomain.com/forum/? type=rss;action =.xml 这里是关于论坛重写整个块: http : //pastebin.com/raw.php? i= tZkAibW3 我真的很感谢一些帮助来创build一个重写规则来做到这一点。 谢谢。
我正在尝试nginx并将我现有的apacheconfiguration移植到nginx。 我设法重新路由codeigniterurl的成功,但我有一个特定的控制器,其名称与站点根目录一致的问题。 我设法使我的codeigniterurl的工作,因为它在Apache中,除了我有一个特定的URL说http://localhost/hello这与网站根目录中的hello目录一致。 Apache对此没有任何问题。 但是nginx路由到这个目录而不是控制器。 我的重新路由结构如下 http://host_name/incoming_url => http://host_name/index.php/incoming_url 所有codeigniter文件都在站点根目录下。 我的nginxconfiguration(相关部分) location / { # First attempt to serve request as file, then # as directory, then fall back to index.html index index.php index.html index.htm; try_files $uri $uri/ /index.php/$request_uri; #apache rewrite rule conversion if (!-e $request_filename){ rewrite ^(.*)/?$ /index.php?/$1 last; } # Uncomment to enable […]
我有一个维护公司A(电子邮件地址为%username%@companyA.com)的客户,他们拥有域companyB.com,但没有专为companyB.com设置的“基础结构”(没有Exchange服务器)。 我的客户需要能够让其公司(companyA.com)中的最终用户在发送电子邮件的主题(或主体)行中添加特定的单词或短语(他们只关心传出,在这种情况下,问题),触发Exchange 2010服务器用[email protected]重写标头From和Reply-To [email protected],但只有在用户将关键字/短语放入主题(或主体)。 我试图使用传输规则和New-AddressRewriteEntry cmdlet,但每个似乎都有一个限制。 从我可以告诉的传输规则不能重写From / Reply-To字段,New-AddressRewriteEntry不能根据消息内容有条件触发。 所以回顾一下: 用户在组织外发送电子邮件:发件人和回复 – 保持[email protected] 用户通过主题或正文中的“ KeyWord ”发送组织外的电子邮件:From和Reply-To自动更改为[email protected]。 任何人都知道这是如何编写一个新的邮件代理? 我没有编程知识来编写自定义代理…我可以使用Exchange命令行pipe理程序或控制台的任何function。 或者,如果有人知道一个简单的附加程序,可以做到这一点,也是很好的。 任何帮助将不胜感激! 谢谢!!!
如果该文件不存在于文档根目录中,但是确实存在于其他文件夹中,则我们正在尝试重写到另一个文件夹。 另一个文件夹位于完全不同的位置,在虚拟主机中使用“别名”。 所以,我们到目前为止(从这篇文章如何重写根文件,如果文件存在于文件夹? )是: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/legacy/ RewriteRule ^(.*)$ legacy/$1 [QSA,L] 这在一定程度上起作用,但是似乎将所有内容都指向了传统文件夹,而不仅仅是当文件不存在于第一个位置并且存在于传统文件夹中时。 杰克,先谢谢你的帮助