我设置了我的第一个Nginx站点,重要的重写都完成了。 他们必须是手动的,没有规则可能会处理它,所以我有这样的规则来处理可能被索引或书签的旧URL: rewrite ^/html/Air_III.html /designers-elements-air permanent; 还有一些奇怪的文件,似乎得到stream量,在部分网站,我们还没有得到,所以我只是把它们复制过来。 其中大部分都是从旧的.html重新命名为.php,并且在其他方面不变,但是可能还有一些仍然是.html。 我正在寻找一个规则来处理任何.html文件的请求的情况下,在任何目录,实际上不匹配当前文件的名称,并将重写到.php文件,如果它存在。 在“Apache说”这将是一个redirect permanent而不是重写。 我宁愿不跟踪所有这些,手工做!
没有邪恶的计划,我试图在其他领域镜像一个网站,而在飞行中更改一些string。 我在一个新的主机上设置了nginx作为主站点的RP。 这允许设置一个replace规则: sub_filter Originalstring 'new string'; sub_filter_once off; 不过,我想有几个规则运行,哪个sub_filter只允许每个位置一个 。 这里有什么可以解决的办法?
我有一个运行几个网站的IIS7 Web服务器。 有些网站是一个域的子域,其他域是完全独立的域。 我想使用IIS重写将一个域的所有子域网站redirect到https,但我希望其他域保持原样。 例如,我在同一个Web服务器上有以下站点: one.test.com,two.test.com,otherdomain.com 我想设置一个全局的IIS重写,将http://one.test.com和http://two.test.comredirect到https,但otherdomain.com不应受到影响。 这是我到目前为止,当我testing了正则expression式似乎是正确的,但它不是redirect的子域名网站: <rewrite> <globalRules> <rule name="Redirect to HTTPS" enabled="true" stopProcessing="true"> <match url="(.*)(\.test\.com)" /> <conditions logicalGrouping="MatchAny"> </conditions> <action type="Redirect" url="https://{R1}{R2}" redirectType="SeeOther" /> </rule> </globalRules> </rewrite> 我是否过分复杂或缺less明显的东西? 干杯。
我有一个子域,在那里我想保持我正在从事的项目,以便向客户展示这些项目。 这里是/ etc / nginx / sites-available / projects中的configuration文件: server { listen 80; server_name projects.example.com; access_log /var/log/nginx/projects.example.com.access.log; error_log /var/log/nginx/projects.example.com.error.log; location / { root /var/www/projects; index index.html index.htm index.php; } location /example2.com { root /var/www/projects; auth_basic "Stealth mode"; auth_basic_user_file /var/www/projects/example2.com/htpasswd; } location /example3.com/ { index index.php; if (-f $request_filename) { break; } if (!-f $request_filename) { […]
我是Nginx重新编写的新手,希望获得工作和最小的重写代码方面的帮助。 我们希望在广告系列材料上使用诸如“somecity.domain.com”之类的url,并将结果转到“www”网站中的城市特定内容。 所以,这里是用例,如果客户input: www.domain.com (stays) www.domain.com domain.com (goes to) www.domain.com www.domain.com/someuri (stays the same) somecity.domain.com (no uri, goes to) www.domain.com/somecity/prelaunch somecity.domain.com/landing (goes to) www.domain.com/somecity/prelaunch somecity.domain.com/anyotheruri (goes to) www.domain.com/anyotheruri 这是我到目前为止所做的,部分工作。 我不明白的是如何检查主机后是否没有path/ URI,我猜可能有更好的方法来做到这一点。 if ($host ~* ^(.*?)\.domain\.com) { set $city $1;} if ($city ~* www) { break; } if ($city !~* www) { rewrite ^/landing http://www.domain.com/$city/prelaunch/$args permanent; […]
我正在使用Apache来提供由静态HTML文件组成的博客。 目前,博客使用一个相当标准的URL结构,如下所示: /2010/03/21/my-awesome-blog-post/ 映射到该文件 /2010/03/21/my-awesome-blog-post/index.html 使用Apache的mod_dir 。 我想删除结尾的斜杠,以便URLs /2010/03/21/my-awesome-blog-post 以同样的方式工作(不要redirect)。 有没有办法与Apache做到这一点? (请注意,我希望URL后面的斜杠也能继续工作。) (进一步说明:我看到了一些关于Apache的DirectorySlash指令,但我不认为它是做我想要的…虽然我不确定)。
我使用的是Nginx 0.7.64,Passenger 2.2.9,Rails 2.3.5。 我有我的页面caching目录设置为/公共/caching,我希望能够提供caching页面时,通过HTTP请求,但总是击中Rails应用程序通过HTTPS请求时。 我的configuration大部分是这样的: server { listen 80; server_name website.com www.website.com; proxy_set_header X-Forwarded-Proto http; root /home/deploy/website/current/public; passenger_enabled on; if (-f $document_root/cache/$request_filename.html) { rewrite (.*) $document_root/cache/$1.html break; } } server { listen 443; server_name website.com www.website.com; root /home/deploy/website/current/public; passenger_enabled on; proxy_set_header X-Forwarded-Proto https; ssl on; ssl_certificate /home/deploy/website/shared/ssl/www.website.com.combined.crt; ssl_certificate_key /home/deploy/website/shared/ssl/www.website.com.key; } 我预计,当我请求website.com/about时,我应该被提供/public/cache/about.html,但是我打了Rails服务器(拖尾日志显示它)。 思考我可能有一个不恰当的斜线(在大多数例子中没有看到$document_root ),我也尝试了以下所有的变化,没有一个工作: if […]
我最近安装nginx 1.0.5与PHP FCP,PHP APC和Postgres。 我只是想玩弄nginx,学习如何configuration基本的东西。 对于扩展testing,我决定安装PHPBB3(很好),看看PHP + Postgres的访问工作。 现在我想知道重写URL是如何工作的,并且已经发现重写的东西应该写在nginxconfiguration中的位置部分。 但不幸的是nginx似乎忽略了我在configuration中的每一个重写规则。 所以我想知道如果我不得不先打开重写function? nginx -V |grep rewrite什么都不显示,而且安装nginx-extras也没有帮助。 我只是希望nginx-extras包含了像重写模块的东西,但不幸的是情况并非如此。 searchserverfault.com和谷歌没有帮助。 所以 – 我该怎么办? :\高度赞赏任何帮助。 PS:所有软件包都安装在Debian 6中的apt-get安装。 编辑:下面我的nginx vhostconfiguration的摘录: server { listen 80; server_name domain.org www.domain.org; access_log /var/log/nginx/domain.access_log; error_log /var/log/nginx/domain.error_log; rewrite_log on; events { debug_connection <my ip>; } […]
我们有一个用Apache运行的网站。 最近该网站已经看到增加的负载,并作为一个停止的差距,我们要把网站上的所有静态内容转移到无cookie的域名,例如http://static.thedomain.com 。 该应用程序不是很好理解。 所以为了让开发者有时间去修改代码,把它们的链接指向静态内容服务器( http://static.thedomain.com ),我想通过nginx代理这个站点,并且重写这个即将到来的响应,以便到/images/…被重写为http://static.thedomain.com/images/… 例如,在Apache对nginx的响应中,有一些Headers + HTML。 在从Apache返回的HTML中,我们有<img>标签,它们看起来像: <img src="/images/someimage.png" /> 我想将其转换为: <img src="http://static.thedomain.com/images/someimage.png" /> 以便接收到HTML页面的浏览器直接从静态内容服务器请求图像。 这可能与nginx(或HAProxy)? 我对文档进行了粗略的浏览,但除了重写入站url之外,没有任何东西跳出来。
也许是一个愚蠢的问题,但我似乎无法find好的文档或例子… 当你使用位置块来过滤传入的请求时,你是从匹配的位置还是从请求的开始进行重写? 一个例子: location ^~ /category/ { rewrite ^/category/paid-search-news/?$ /tag/paid-search permanent; # this, rewrite ^paid-search-news/?$ /tag/paid-search permanent; # this, rewrite paid-search-news/?$ /tag/paid-search permanent; # or this? }