Questions tagged «rewrite»

URL重写将传入的URL映射到修改的URL,这样就可以像处理原始请求一样对请求进行处理。通常用于提供更多搜索引擎友好的URL。

1
如何仅从请求uri中提取文件名
我正在尝试根据文件的扩展名重写请求uri,然后仅从uri中提取文件名并将其存储在另一个文件夹中。这里的问题是没有预定义的文件名变量和可用变量uri,request_uri并且request_filename会给出完整的uri。 server{ set $file_folder D:/nginx-1.0.15/imageAll/; location ~*+.(gif|jpg)$ { try_files $uri @imgstore; } location @imgstore { proxy_pass $file_folder$request_filename; proxy_store on; proxy_temp_path /nginx-1.0.15/images/; proxy_store_access user:rw group:rw all:r; } } 尽我所能做的就是让扩展名为.jpg或.gif,当我把$1到位的$request_filename是这样的: location @imgstore { proxy_pass $file_folder$1; } 所以,我想知道: 如何从请求中获取文件名? 将图像从文件夹存储到另一个文件夹是否正确?
11 nginx  rewrite  images 

1
nginx:重写除一个位置以外的所有内容
现在,我的nginx正在将多个域重写为我们正在使用的一个主域。这是我的配置中的一条规则: server { listen X.X.X.X:80; server_name .exampleblog.org; rewrite ^(.*) http://blog.example.org$1 permanent; } 对** exampleblog.org *的每个请求都将重定向到blog.example.org 现在,我希望www.exampleblog.org/+和exampleblog.org/+将用户重定向到我们的Google Plus页面。它尝试了以下版本的不同版本: server { listen X.X.X.X:80; server_name .exampleblog.org; location /+ { rewrite ^ https://plus.google.com/12345678901234567890/ permanent; } rewrite ^(.*) http://blog.example.org$1 permanent; } 以上版本和其他版本仅重定向到blog.example.org/+-我在做什么错?

4
暂时将IIS中的* all * HTTP / HTTPS请求重定向到“服务器维护”页面
我们有一台IIS服务器,它承载数百个单独的Web应用程序,并且承载这些应用程序的物理数据库服务器将在短期内脱机进行维护(我们预计将花费不到15分钟的时间)。 在此期间,我们希望将任何网站的所有流量重定向到“我们正在接受维护”页面。 我意识到我可以通过转到每个Web应用程序并设置IIS重写规则将用户发送到该应用程序中所有请求的另一个页面的方式来做到这一点。但是,与数据库维护相比,这样做需要更长的时间! 我已经尝试了三件事,但都没有奏效: 全局IIS重写规则 我一直在寻找一种简单的方法,可以一口气将规则应用到所有站点,然后能够以同样轻松的步骤“撤消”该规则。到目前为止,我的尝试都没有成功。我确实尝试将此重写规则放在W:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config的全局web.config中: <configuration> <system.webServer> <rewrite> <rules> <rule name="redirect all requests" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" /> </conditions> <action type="Redirect" url="http://www.somedomain.com/maintenance" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration> …

2
IIS重写,重写映射和查询字符串
请帮助我了解重写地图,我有以下设置: <rewriteMap name="MyMap"> <add key="/pages" value="/website/pages/index.aspx" /> <add key="/pages/page-1" value="/website/pages/page-1/index.aspx" /> <add key="/pages/page-1/section-1" value="/website/pages/page-1/section-1.aspx" /> </rewriteMap> 这是我的规则: <rule name="Rewrite rule for MyMap" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{MyMap:{REQUEST_URI}}" pattern="(.+)" /> </conditions> <action type="Rewrite" url="{C:1}" appendQueryString="true" /> </rule> 如果我尝试访问以下页面,则此方法有效: www.mydomain.com/pages(确定) www.mydomain.com/pages/page-1(确定) www.mydomain.com/pages/page-1/section-1(确定) 但是我希望可以在任何这些页面上添加查询字符串,例如: www.mydomain.com/pages?page=1(失败) 当我尝试访问此页面时,我得到404。如何使它工作?
10 iis-7  rewrite 

3
Apache:在哪里检查重定向日志?
我有复杂的RewriteCond和RewriteRule在一台机器。并且根据这些规则,某些请求将被重定向到另一台计算机。 那么,是否有任何Apache日志清楚地显示了重定向的过程?因为重定向以我意想不到的方式发生。

1
Nginx产品从旧类别到新类别的简单重定向
我正在将产品从旧类别重定向到新类别。 我设法使其遵循以下规则: rewrite ^/old-category/(.*) /new-category/$1; 但是我想知道何时应该使用“结束行”符号$,在我的情况下,使用或不使用它有什么区别。例如: rewrite ^/old-category/(.*)$ /new-category/$1; 另外,如果用户只是写旧的类别名称(不带产品),我也想重定向用户,应该只为类别重定向创建新规则,还是可以编辑上面的当前规则在两种情况下都可以使用。 预先感谢您的回答。

4
为什么我的RewriteRule所在的位置会出现双斜杠?
我正在使用以下代码将所有www请求定向到非www URL: RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC] RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 这在我的网站根目录下的.htaccess文件中非常有效。 例如, www.example.com-> example.com/ www.example.com/-> example.com/ www.example.com/other_page-> example.com/other_page 但是,如果我将相同的代码移到VirtualHost配置中,则重写的URL包含双斜杠。 www.example.com-> example.com// www.example.com/-> example.com// www.example.com/other_page-> example.com//other_page 我通过从重写规则中删除斜杠来修复它: RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC] RewriteRule ^(.*)$ http://example.com$1 [R=301,L] 但是我不明白原因。有人知道为什么吗?

3
mod_rewrite不转发GET参数
我在开发计算机上使用mod_rewrite设置Apache时遇到问题。Mod_rewrite是活动的,并且对于某些规则非常有效。某些规则不符合预期,例如: RewriteRule ^static/([^/]+)/([^/]+) /static.php?sISOCode=$1&sPage=$2 在static.php中,我这样做(用于调试): <?php print_r($_GET); print_r($_POST); print_r($_SERVER); die(); 哪个打印(从$ _SERVER数组中删除了一些项目): Array ( ) Array ( ) Array ( [SERVER_SIGNATURE] => <address>Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.1 with Suhosin-Patch Server at alpha.prove.no Port 80</address> [SERVER_SOFTWARE] => Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.1 with Suhosin-Patch [SERVER_ADDR] => 127.0.0.1 [SERVER_PORT] => 80 [REMOTE_ADDR] => 127.0.0.1 [DOCUMENT_ROOT] => …

2
NGINX在位置块内重写语法
也许是一个愚蠢的问题,但是我似乎找不到很好的文档或示例... 当您使用位置块来过滤传入的请求时,您是从匹配的位置还是从请求的开始进行重写? 一个例子: 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? }
8 nginx  rewrite 

2
使用Nginx重写传出响应中的URL
我们有一个客户,其网站在Apache上运行。最近,该站点的负载不断增加,并且我们希望将站点上的所有静态内容转移到无cookie域,这是一个停顿点http://static.thedomain.com。 该应用程序不是很好理解。因此,为了给开发人员时间修改代码以将其链接指向静态内容服务器(http://static.thedomain.com),我考虑过通过nginx代理站点并重写传出的响应,以便将链接/images/...重写为http://static.thedomain.com/images/...。 因此,例如,在Apache对nginx的响应中,出现了标题+ HTML的斑点。在从Apache返回的HTML中,我们有如下<img>标签: <img src="/images/someimage.png" /> 我想将其转换为: <img src="http://static.thedomain.com/images/someimage.png" /> 这样浏览器在接收到HTML页面后便直接从静态内容服务器请求图像。 nginx(或HAProxy)可以做到吗? 我粗略浏览了一下文档,但是除了重写入站URL之外,没有其他事情对我有所帮助。

1
ProxyPass整个域到Tomcat,包括root
我已经将VirtualHost example.com配置为将所有请求代理到Tomcat服务器 ProxyPass / http://localhost:8088/app ProxyPassReverse / http://localhost:8088/app 这工作得很好了像URL example.com/page,但对于example.com和example.com/我得到这个重定向响应,这显然会导致什么。 HTTP/1.1 302 Moved Temporarily Date: Wed, 06 Jul 2011 21:13:37 GMT Server: Apache-Coyote/1.1 <-- the redirect comes from tomcat Location: http://example.com/app/ <-- nonsense ... 我该如何解决?最好在Apache配置中。 我正在使用Apache 2和Tomcat 7

4
nginx子域重写
另一个Nginx重写规则问题 我怎样才能做一个重写的http://www.*.domain.com到http://*.domain.com? 提前致谢 -黛比 编辑: 对不起,我没有看到纺织品格式从我的问题中删除了*。我现在修复了。我需要做的是从www.joe.domain.com转到joe.domain.com,其中joe可以是任何单词。
8 nginx  rewrite 

9
建议:公司网站被迫使用https?
我的公司希望将其“信息”网站从HTTP重写为HTTPS。从技术上来说,这对我来说并不重要。但是我怀疑这是否是最新技术,因为他们想要这样做的唯一原因是加密联系人并签署表格。(我可以为带有表单的网站启用HTTPS,但是他们不喜欢这种方法。) 拥有仅HTTPS的公司网站有哪些弊端和低迷时期?您的经验和建议是什么? Web应用程序正在另一个URL上运行并已加密。 问候

2
Apache:发送预压缩的gzip文件
我希望Apache通过网络发送gzip'ed的静态文件,但也希望Apache不能总是一遍又一遍地gzip化它们。因此,我认为如果存在.gz文件,是否无法提供该文件。此设置: 文件结构: static/ | |--- style.css | \--- style.css.gz .htaccess中的以下内容: mod_rewrite规则: RewriteCond %{REQUEST_FILENAME}.gz -s RewriteRule ^(.+) $1.gz [L] 而这个设置: AddEncoding x-gzip .gz 实际上,如果请求转到,则在发送.gz文件而不是.css的情况下,此方法有效/static/style.css。唯一的问题是,文件以“ application / x-gzip”而不是“ text / css”的形式提供。使用mod_rewrite的T标志不会改变它。明确的也没有 AddType text/css .css 有谁知道我如何实现期望的行为?还是出于某种我没想到的原因而不必要? 编辑:还有一个额外的困难:将原始文件发送给不带gzip支持的客户端。有谁知道这如何工作?

4
如何将IIS 7配置为使用子目录作为默认文档?
因此,我有一个在asp.net折扣帐户上运行的网站,并且将asp.net mvc应用程序放在子目录中。如果我的网址是“ www.website.com”,而我的应用程序在目录“ sample”中,则“ www.website.com/sample”将执行mvc应用程序。 我的问题是,我希望在您访问“ www.website.com”时显示该应用程序,而不仅仅是“ www.website.com/sample”。我可以访问IIS管理器,并且可以肯定有很多方法可以做到这一点。 最好的方法是什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.