【发布时间】:2014-06-18 22:47:23
【问题描述】:
我想重定向调用脚本的所有页面以调用不同的脚本并更改参数的名称。我也想从 url 中丢失一个文件夹。无论我尝试什么,都会出错。
为了在我们在新网站上线之前进行测试,这些页面将被重定向,我们设置了一个指向新文件位置的域,并且作为重定向的一部分也需要更改它(在我们去之后live 旧域将指向新域位置)。
因为 url 调用了一个程序 (prodpage.pgm) 并且还需要 Srcipt 别名,所以这个重定向必须在 httpd.conf 文件中而不是在 .htaccess 中完成,这意味着我每次更改任何内容时都必须重新启动 Apache,所以我不能只是
我们要重定向的旧网址格式为:
http://www.olddomain.com/b2c/b2citmdsp.pgm?pp_skmno=18297
并且应该被重定向到:
http://www.newdomain.com/prodpage.pgm?item=18297
我使用如下 301 重定向来执行此操作,但它不起作用:
RedirectMatch 301 ^/b2citmdsp.pgm\?pp_skmno=(.*) http://www.newdomain.com/prodpage.pgm?item=$1
总之,我需要:
(a) 丢失 /b2c/ (b) 将 b2citmdsp.pgm 更改为 prodpage.pgm (c) 检索 pp_skmno 的参数值并将其与新 url 一起使用
请对我做错了什么有任何想法,或者这是不可能的。
另外,当您进行重定向时,它是否会更改 url,以便您可以使用后续重定向来进一步修改它?在这种情况下,我可能可以使用 2 或 3 个重定向,但我确信这必须在一个中实现,只是我有时会在正则表达式方面遇到困难。
【问题讨论】:
-
在获得临时 302 的有效解决方案之前,请勿使用 301 永久重定向,否则每次更改后都必须重新启动浏览器...
标签: regex apache httpd.conf url-redirection