Articles of 重写

Apache的情况下,单个规则不敏感的mod_rewrite

我正在使用mod_rewritesearch引擎友好的url。 我有这个很好的作品: RewriteRule ^Pay ./pay.php [L] #Pay 但是如果访问者inputhttp://example.com/pay (注意小写),我也想要匹配。 我曾尝试使用NC但我得到一个500错误。 我已经尝试了2个单独的规则一个大写和一个小写,但再次500错误。 这可以使用正则expression式在一行上完成吗? 就像是: RewriteRule ^([Pp])ay ./pay.php [L] #Pay 如果是这样,什么是正确的方法? 如果不是我怎么能不使用mod_spelling来完成这个?

Nginx的内部重写不起作用,并被redirect

嗨,我想要一个重写规则,但我不想redirect它,请求一个URL,但从另一个URL加载不同的内容。 所以,我认为最后和重写指令中的标志是一个很好的解决scheme。 但是,它总是redirect,我search这个问题,他们声明,如果新的URL不是来自nginx实例,它将redirect。 这里有几行我的configuration: … rewrite ^(/\w+/$)(.+\.php) /$2 last; proxy_pass upstream_name:80; … 我问的是我如何使用重写,但不redirect? 更新:例如,我想创build一个新的像/ link / asd,但是在我的web应用程序中没有/ link / asd。 我希望我的/链接/ asd链接从/ asd链接加载资源。 那么,我认为重写最后的旗帜是一个很好的解决scheme。 如果我的理解是错误的,请纠正我的解释。 谢谢

IIS重写基于语言的规则和默认语言

我想创build一个基于用户浏览器语言的IIS重写规则,但仅限于一组特定的语言。 我们的网站有英文(en),法文(fr)和荷兰文(nl)。 我可以创build这个重写规则: <rule name="Redirect short url to long url: NEW SYNTAX 2017-11-01" stopProcessing="true"> <match url="^([_0-9a-z-]+)$" /> <conditions> <add input="{HTTP_HOST}" pattern="mydomain\.be$" /> <add input="{HTTP_ACCEPT_LANGUAGE}" pattern="^(en|fr|nl)?" /> </conditions> <action type="Redirect" url="https://www.myotherdomain.be/{C:1}/projects/{R:1}?type=shorturl" appendQueryString="false" redirectType="Found" /> </rule> 当我用三种指定语言之一(en / nl / fr)configuration我的浏览器时,这工作正常。 如URL http://mydomain.be/test将redirect到https://www.myotherdomain.be/nl/projects/test?type=shorturl (当我的浏览器被configuration为荷兰语)。 但是,当我configuration我的浏览器,例如“ru”,那么相同的url将redirect到https://www.myotherdomain.be//projects/test?type=shorturl 对于任何其他语言,我想默认长URL到/ EN /而不是/ /有没有办法使用IIS重写规则做到这一点? 预先感谢您的任何指导!

IIS10 URL重写2.1双重编码问题

我有一个IIS10服务器与ARR 3.0和URL重写模块2.1充当其他几个Web服务器的反向代理。 其他服务器运行在不同的端口上,因此IIS10服务器在端口80上提供“友好的URL”。URL重写用于将请求交给后端服务器。 一个这样的服务器是jenkins 。 Jenkins有一个警告消息,告诉您反向代理是否configuration正确( 更多细节在这里 ),这个警告消息帮助我在反向代理中发现问题。 问题是,url重写是解码和编码我的url,当他们到达jenkins时,他们是不同的浏览器要求。 例: URL重写规则: <rule name="Jenkins Rewrite" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern=".*jenkins.mydomain.*" /> <add input="{HTTPS}" pattern="on" /> </conditions> <action type="Rewrite" url="http://localhost:8080/{R:1}" appendQueryString="true" /> <serverVariables> <set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" /> <set name="HTTP_X_FORWARDED_SCHEMA" value="https" /> <set name="HTTP_X_FORWARDED_PROTO" value="https" /> </serverVariables> </rule> 发送以下URL时: HTTPS://jenkins.mydomain/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/https%3A%2F%2Fjenkins.mydomain%2Fmanage%3F 我注意到在触发规则之前解码的编码字符,使得{R:1}看起来像这样: /administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/https:/jenkins.mydomain/manage/ : /administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/testForReverseProxySetup/https:/jenkins.mydomain/manage/ 经过一番研究,我发现我可以在解码之前使用{UNENCODED_URL}而不是{R:1}来获取请求string,所以我调整了我的规则动作: […]

是一个小的VPS足以运行一个URL缩短服务?

我有一个小日本导向的url缩短服务。 它被closures了,因为它在共享服务器上使用了太多的资源(CPU时间和内存)。 这是几年前,但我有兴趣,如果我能负担得起恢复生活。 我打算使用http://tighturl.com/project/这一次,并想知道是否从说linode最小的VPS将能够处理的工作量。 大部分的工作只是mod_rewrites。 如果网站变得缓慢,但不是不可忍受的。 如果项目有兴趣,那么我可以升级VPS。 但是我是否正确地认为,即使VPS被淹没,也不会因为影响其他用户的性能而closures?

这个URL重写是什么意思?

RewriteCond %{REQUEST_URI} \..+$ RewriteCond %{REQUEST_URI} !\.html$ RewriteRule .* – [L]

如何阻止攻击用rewriterule?

得到一些虚假的请求打我的服务器。 想阻止任何包含http://的请求。 例: domain.com/forum/function/component.php= http://bogusdomain.gov.ve/images/foo.txt 我想 RewriteRule ^(.*=http://) – [F] 会做到这一点,但似乎没有工作。 有什么build议么?

(无形)从文件夹重写到子域

目前在www.foo.com有一个网站。 我需要在www.foo.com/blog上设置一个(wordpress)博客,但是在一个单独的服务器上(有一个类似blog.bar.com的域名)。 网站访问者只能看到www.foo.com/blogurl。 所以: User sees Target URL ———————– ——————— www.foo.com/ -> www.foo.com/ www.foo.com/blog -> blog.bar.com/ www.foo.com/blog/wp-admin/ -> blog.bar.com/wp-admin 这一切都可以使用一些(一)重写规则,我假设? 博客内容是否可以通过2个完全不同的URL访问会导致任何问题(尤其是search引擎优化)? 是否有可能(并希望)通过blog.bar.com URL阻止访问?

无法301与IIS URL重写模块redirect

我正在尝试解决与IIS 7上的URL重写模块的问题。 我将一个WordPress博客迁移到了BlogEngine.net。 我只想使用301条redirect到新博客的条目,所以我只想使用重写模块创build5个完全匹配redirect规则。 出于某种原因,完全匹配规则似乎从未生效,当原始url导航到时,我总是收到404错误。 我证实我的确切匹配模式匹配现有的反向链接,它确实如此。 然后我尝试了一个简单的testing,得到了相同的行为,没有redirect。 我在我的网站上创build了一个页面test.html,然后创build了第二个页面test2.html。 所以我的确切匹配模式是: “ http://www.mydomain.com/test.html ” 规则应该做一个301redirect到“ http://www.mydomain.com/test2.html ”redirect从来没有发生。 我根据此页面中的说明创build了规则的步骤: http : //learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/ 我没有看到我离开了一步。 在我应用这个规则之后,我甚至去做了一个IISReset,以确保它能生效,但仍然没有运气。 对我可能遗漏的任何想法? (注意:我的重写规则不包括“”周围的他们,但我不得不添加,因为serverfault认为我想垃圾邮件与多个URL的系统。

Nginxredirect帮助

我想使用NginxHttpMapModule和NginxRedirect将静态链接redirect到dynamicPHP链接。 我想通过查看地图表中的url将http://my_domain/static/static_page1.htmlredirect到http://domain_name/dynamic/zone.php?zoneid = 86 。 我试过,但它在一个redirect循环结束。 map_hash_bucket_size 256; map $uri $dynamic_url { default 42; /static/static_page1.html 86; /static/static_page2.html 36; } server { listen 80; server_name domain_name; rewrite ^ http://domain_name/dynamic/zone.php?zoneid=$dynamic_url break; } 请帮我解决一下这个。 问候,Shain