我们现有的公共网站由大量静态内容的asp.net页面和一些真实的web应用程序构成的虚拟目录组成。 我们现在正在考虑安装Umbraco ,它要求您将其安装在网站的根目录下。 由于CMS将位于网站的根目录,因此我认为在Umbraco下运行我们现有的页面和Web应用程序是一个坏主意(由于URL重写它执行并inheritanceweb.config设置等)。在我们过渡到CMS并在完成之后,我们是否能够一切和平共处? 我到目前为止唯一的想法是将CMS和应用程序设置为单独的网站,然后使用某种URL重写/反向代理来正确解决所有问题: www.example.com将继续解决我们的旧主页 www.example.com/dept1将继续解决旧的dept1页面 www.example.com/dept2将parsing为CMS上新的dept2页面 www.example.com/app将parsing为现有的Web应用程序
我在下面的nginx中使用了rewrite指令来重写外部CDN服务器的静态文件的URL。 rewrite ^/static/(css|images|js)/([a-z_\-\.]+)$ http://cdn.domain.com/$1_$2 last; 它的工作原理,但它在浏览器中自动redirect的url。 我怎样才能做到以上重写没有redirect?
工作过度疲劳导致我在我的应用程序中使用错误的web.config文件,因此应用了一个永久redirect在错误的URL! 我的意思是转换: http://www.mydomain.net to https://mydomain.net 但是,我这样做(通知.co.uk): http://www.mydomain.net to https://mydomain.co.uk 我们的.co.uk域名不再使用,但我们仍然拥有它。 我设法很快从configuration文件中删除了规则,幸好它处于开发阶段,无论如何也没有人登陆它,而且我也从IIS中删除了规则。 但是,我的浏览器仍然被redirect到错误的域名,但其他浏览器却没有。 所以我认为,除了浏览器之外,一切都还好。 我是否对我的网站将来如何运行做了任何永久性损害,并且是否需要采取其他措施来消除此不正确的规则?
我在Nginx重写中遇到问题 目前我的规则如下所示 重写^ / i /(.*?)$ /i/$1.php最后; 基本上我想要做的是将所有.png文件redirect到/ i目录中的.php文件。 但是,看来这个$必须是最后的,所以我不能这样做 重写^ / i /(.*?)$。png /i/$1.php最后; 有没有人有任何解决scheme? 谢谢Ben
Apache的文档很清楚地表明, mod_rewrite应该只是最后一招。 对于nginx ,陷阱部分有request_uri基本不变的例子。 情况是这样的: 我们(研究所的一个部门)有一个即将升级的主networking服务器(正在运行Debian 6)。 为了处理升级,我已经build立了一个nginx服务器,它将代理已知可以正常工作的部分升级服务器,而其他部分则服务于旧服务器。 旧的服务器有一些ProxyPass规则(大量的代理工作)。 我希望将所有这些都转换为nginx ,因为据我所知, nginx在代理中更具性能。 大量用户的用户主目录由另一台服务器提供服务。 对于这些用户,可以使用代字号和非代字号(即http://my.site/muru和http://my.site/~muru代理到http://other.server/~muru ,但http://other.server/muru不存在)。 许多文件夹被代理到同一台服务器上的不同文件夹。 (例如, http://my.site/local-club : http://my.site/local-club将被代理到http://my.site/~local-club )。 我的主要问题是: 鉴于A和B都被代理到不同的服务器上的C,我应该使用rewrite或location与returnredirectB到A请求,或继续代理? 给定A和B在同一台服务器上,B代理到A,我应该使用重写还是将Bredirect到A? redirect(和return )具有清楚地指示两个目录之间的关系的好处。 我的rewrite规则如下所示: rewrite ^/B(/.*) /A$1 permanent; 和return规则: location ~ ^/B(/.*) { return 301 /A$1; } 附: location ~ ^/~(A|D|E|F..)/ { proxy_pass https://other.server; proxy_redirect default; }
将站点的login页面redirect到最后带有“/#/”的URL的原因是什么? 我公司的系统pipe理员使用Apache反向代理,并且总是将所有外部网站redirect到以“/#/”结尾的login页面。 例如: https://example.com/springApp/#/ 这有什么特别的原因吗? 我是一个技术人员,但我想不出一个原因。 只是好奇。 注:我们的网站不使用页面滚动锚点。
原始请求地址: www.example.com/index.php?r=mobile/receive/index 重写的请求地址: www.example2.com/newindex.php?r=mobile2/receive2/index2 这是我自己的configuration: if ($args ~* "^r=mobile/receive/index") { rewrite ^ "http://www.example2.com/newindex.php?r=mobile2/receive2/index2"; } 但重写地址的结尾是这样的: http://www.example2.com/index.php?r=mobile2/receive2/index2&r=mobile/receive/index 你看到我的问题吗? 重写的地址是自动添加的,但这不是我想要的。 相同的参数键将导致后盖正面。
我有一套专门的重写规则来适应多站点的cms设置。 我试图让nginx强制请求URL上的斜线。 我希望它redirect请求 domain.com/some-random-article to domain.com/some-random-article/ 我知道有这个语义上的考虑,但我想做SEO的目的。 这是我目前的服务器configuration。 server { listen 80; server_name domain.com mirror.domain.com; root /rails_apps/master/public; passenger_enabled on; # Redirect from www to non-www if ($host = 'domain.com' ) { rewrite ^/(.*)$ http://www.domain.com/$1 permanent; } location /assets/ { expires 1y; rewrite ^/assets/(.*)$ /assets/$http_host/$1 break; } # / -> index.html if (-f $document_root/cache/$host$uri/index.html) { rewrite […]
我在这里对Nginx有一点新意,所以请耐心等待 – 我想重写一个url,如foo.bar.com/newfoo?limit=30到foo.bar.com/newfoo.php?limit=30 。 看起来很简单,像这样rewrite ^([az]+)(.*)$ $1.php$2 last; 我感到困惑的部分是放在哪里 – 我尝试过一些位置指令,但是我做错了。 这里是我现有的虚拟主机configuration,我应该在哪里实现我的重写? server { listen 80; listen [::]:80; server_name foo.bar.com; root /home/foo; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.html; } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; deny all; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; […]
我有这些重写规则(我尝试都没有用): location ~* "^/([a-z0-9]{32})\.png$" { rewrite ^ /index.php?page=log&id=$1 last; } 和 location ~* "/(?<hash>[a-z0-9]{32})\.png" { rewrite ^ /index.php?page=log&id=$hash; } 和 location / { try_files $uri $uri/ @rewrites; } location @rewrites { rewrite "^/([a-zA-Z0-9]{32})\.png$" /index.php?page=log&id=$1 last; #… } 基本上,我希望URL http://example.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.png实际上将parameter passing给我的index.php脚本,并在脚本中得到: $db->save_hash($_GET['id']); header('Content-type: image/png'); readfile('images/beacon.png'); break; 但是nginx给了我一个“未find”,但其他重写工作正常。 是什么赋予了?