Questions tagged «rewrite»

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

2
Nginx https重写将POST转换为GET
我的代理服务器在ip A上运行,这是人们访问我的Web服务的方式。Nginx配置将重定向到IP B上的虚拟机。 对于IP A上的代理服务器,我在我的站点中有此服务器 server { listen 443; ssl on; ssl_certificate nginx.pem; ssl_certificate_key nginx.key; client_max_body_size 200M; server_name localhost 127.0.0.1; server_name_in_redirect off; location / { proxy_pass http://10.10.0.59:80; proxy_redirect http://10.10.0.59:80/ /; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; rewrite ^(.*) https://$http_host$1 permanent; server_name …
17 nginx  rewrite 

2
使用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; } 等等。我已经阅读了有关重写的文档,但似乎无法将所说的内容与我需要执行的操作进行综合。我不是来自Apache的背景。nginx是我第一次涉足Web服务器,因此我确信我缺少明显的东西,因为我的HTTP背景很薄弱。在此先感谢您提供的任何帮助。
16 nginx  rewrite 

2
nginx用参数重写URL
我有一个这种类型的URL: http://www.example.com/?param1=val1&param2=&param3=val3&param4=val4&param5=val5 我想将其重定向到这一点: http://www.example.com/newparam/val3/val4 所以我尝试了这个重写规则,但没有成功: rewrite "/?param1=val1&param2=&param3=(.+)&param4=(.+)&param5=(.+)" http://www.example.com/newparam/$1/$2 redirect; Nginx是否无法处理查询参数? 编辑:我不想重写所有请愿书。我只需要重写该URL,而不会影响其他URL。

2
仅重定向首页
我只需要将http://shop.test.com重定向 到 http://www.test.com/fedex-orders/ 只是主页。没有其他的。即 http://shop.test.com/?page=blog不应重定向。
16 nginx  rewrite 

1
从外部源维护Nginx中的重定向
我处于这种情况下,是要给我们的营销部门一个机会,以自己维护他们的重定向。到目前为止,他们将信息传递给了IT部门,我们在中为他们维护了这些信息nginx.conf。 其中一些人对IIS甚至Apache中的重定向非常熟悉,但是没有选择让他们直接访问nginx配置。 我知道,我没有.htaccess可以访问的文件支持nginx ,并且我也不想授予对nginx包含的conf文件的写访问权限。我希望我们的行销能在数小时内打破我们的nginx设定... 如果没有让他们接触我们的负载均衡器的核心,是否存在安全的可能性?
15 nginx  rewrite 

3
nginx不区分大小写的重写
我试图使我的Nginx重定向尽可能干净。我知道〜*是不区分大小写的,但是我只能在示例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; } 有没有一种方法可以对示例1进行不区分大小写的重定向,而又不会太混乱呢? 谢谢。
15 nginx  rewrite 

1
如何通过gzip压缩使用IIS URL重写
我一直试图在启用了静态HTML页面和压缩功能的网站上的Windows 2008 R2上的IIS 7.5中创建出站规则。 如果启用了任何形式的压缩(静态或动态),都会出现此错误: HTTP Error 500.52 - URL Rewrite Module Error. Outbound rewrite rules cannot be applied when the content of the HTTP response is encoded ("gzip"). 关闭压缩并不是真正的选择,因为这会对页面加载性能产生巨大的负面影响。 我想象任何使用出站重写规则的人都会遇到此错误,因为您始终希望为文本内容启用压缩。 我查看了一些建议以使其正常工作: /programming/3713804/url-rewrite-outbound-rules-iis7/4363301#4363301 和 http://forums.iis.net/p/1165899/1937454.aspx#1937454 但是我仍然遇到同样的错误。 有人有这个工作吗?如果可以,怎么办?
13 iis-7.5  rewrite  gzip 

3
Nginx重写URL仅在文件存在的情况下
我需要为Nginx编写一个重写规则,以便如果用户尝试转到旧的图像URL: /images/path/to/image.png 并且文件不存在,请尝试重定向到: /website_images/path/to/image.png 仅当图像存在于新的URL中时,否则继续404。我们主机上的Nginx版本尚没有try_files。
13 nginx  rewrite 

2
Nginx多个根
我想将请求转移到特定的子目录,再转移到另一个根目录。怎么样?我现有的块是: server { listen 80; server_name www.domain.com; location / { root /home/me/Documents/site1; index index.html; } location /petproject { root /home/me/pet-Project/website; index index.html; rewrite ^/petproject(.*)$ /$1; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } …

1
我的nginx重写正在下载php文件
我正在尝试以下重写规则: location / { index index.php index.html; rewrite ^/test$ /test.php break; } 我也有: location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /home/sites/default$fastcgi_script_name; fastcgi_index index.php; } 正常的php文件可以正常工作,但是似乎我的重定向只是下载要重定向到的php文件,而不是解析它。 我想念什么?我加载了文件,而不是通过在第一个位置块中放入fastcgi来下载文件,但仍然没有将其解析为php。
12 php  nginx  rewrite 

4
配置IIS 7反向代理以连接到TeamCity Tomcat
我们已经配置了IIS 7 Web服务器,并希望在同一台计算机上使用Tomcat为TeamCity安装创建反向代理。 IIS服务器的网站是https://somesite和我想的TeamCity显示为https://somesite/teamcity重定向到http://localhost:portnumber。 我已经安装了IIS URL重写扩展名和“ 应用程序请求路由”,以尝试设置反向代理,但无法使其正常工作。 我找到的最接近的答案是一个旧的StackOverflow问题:https ://stackoverflow.com/questions/331755/how-do-i-setup-teamcity-for-public-access-over-https ,不幸的是它没有任何作用例。 我已经搜索了很多,但似乎找不到相关的示例。 任何帮助表示赞赏!

4
基于引荐来源的不同Nginx规则
我正在将WordPress与WP Super Cache结合使用。我希望来自Google的访问者(包括所有国家/地区特定的引荐来源网址,例如google.co.in,google.co.uk等)看到未缓存的内容。 我的Nginx规则无法按照我想要的方式工作: server { server_name website.com; location / { root /var/www/html/website.com; index index.php; if ($http_referer ~* (www.google.com|www.google.co) ) { rewrite . /index.php break; } if (-f $request_filename) { break; } set $supercache_file ''; set $supercache_uri $request_uri; if ($request_method = POST) { set $supercache_uri ''; } if ($query_string) { …

3
是否有可能替换通过代理传递的每个页面上的内容,类似于将mod_rewrite用于URL的方式?
是否有可能替换通过代理传递的每个页面上的内容,类似于将mod_rewrite用于URL的方式?替代品的文档不明确。 我有一些页面是反向代理的,具有绝对路径。这破坏了站点。它们需要替换,并且像mod_rewrite这样的工具由于不是URL请求,因此无法对其进行处理。 <VirtualHost *:80> ServerName servername1 ServerAlias servername2 ErrorLog "/var/log/proxy/jpuat_prox_error_log" CustomLog "/var/log/proxy/jpuat_prox_access_log" common RewriteEngine on LogLevel alert rewrite:trace2 RewriteCond %{HTTP_HOST} /uat.site.co.jp$ [NC] RewriteRule ^(.*)$ http://jp.uat.site2uk.co.uk/$1 [P] AddOutputFilterByType SUBSTITUTE text/html Substitute "s|uat.site.co.jp|jp.uat.site2uk.co.uk|i" ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://uat.site.co.jp/ ProxyPassReverse / http://uat.site.co.jp/ </VirtualHost> 以上两种方法都不能替换HTML字符串 <link …

2
Nginx重写将查询字符串转换为路径
我想要这个简单的重写规则: /somefolder/mypage.aspx?myid=4343&tab=overview 重定向到: /folder/4343/overview/ 我在寻找一些解决方案,但没有一个真正起作用。 我试过了: rewrite ^/somefolder/mypage.aspx?myid=(.*)&tab=overview$ /folder/$1/overview permanent; 和 rewrite ^/somefolder/mypage\.aspx\?myid=(.*)&tab=overview$ /folder/$1/overview permanent; 我究竟做错了什么?我要404 (简单的规则就可以了。) 谢谢

2
防止URL重写规则被IIS7中的子目录继承
我有一个用于CMS中干净URL的URL Rewrite设置,我的web.config如下所示: <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Clean URLs" stopProcessing="true"> <match url="^([^/]+)/?$" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="?id={R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> 它基本上变成index.php?id=something为something清洁的网址。非常简单,效果很好。 与CMS中常见的一样,为防止后端损坏,每个子目录都需要一个目录<remove name="Clean URLs" />或<clear />在其web.config中,因此该规则不会被继承。 是否可以通过某种方式将规则的范围限制为仅当前目录,来在父规则中指定它根本不应该由其子级继承?像是<rule name="Clean URLs" stopProcessing="true" inherit="no">史诗般的东西。
11 iis  iis-7  rewrite  url  web.config 

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.