2014-12-08 130 views
0

我一直在成功地将301重定向添加到我们的网站.htaccess文件中,以便我可以将url从旧网站指向我们新网站上的正确网址,但是我无法获取任何重定向在旧网址中包含“.pgm”的地方工作。.htaccess RewriteRule plus httpd.conf ScriptAliasMatch

的“.PGM的”是我们的IBM iSeries服务器上的RPG程序,并在新站点的URL的是在httpd.conf文件如下重定向:

ScriptAliasMatch (.*)\.pgm$ /QSYS.LIB/B2CRLIVE.LIB/$1.pgm 

所有URL重定向的两个虚荣心链接和旧网站的网址是在.htaccess中完成的,并且这些工作正常,除非旧网址包含“.pgm”,在这种情况下,无论我尝试做什么,最终都会生成一个404页面。

旧网站网址的一个例子是:

http://mydomain/b2c/b2chome.pgm 

我使用的重定向是:

RewriteRule b2chome /category/0/Product\ Range [R=301,L] 

这工作正常,如果URL是:

http://mydomain/b2c/b2chome 

但一旦你添加“.pgm”到任何网址,它只会导致404页面。

ScriptAliasMatch适用于将“.pgm”指向正确的程序库,但旧站点上使用的程序不存在于指向的库中。我认为这不是问题,因为我认为如果是这样的话,我会得到某种脚本错误。

有什么想法吗?

+0

我不知道这是我和我的特定英语,但我不明白。你重定向(尝试)'http:// mydomain/b2c/b2chome.pgm' - >'http:// mydomain/category/0/Product Range'后? – Croises 2014-12-08 10:27:06

+0

这个重定向的结果是原始URL仍然存在,404页面显示。如果url不包含.pgm,则重定向将起作用,但由于某些原因,重写对包含“.pgm”的url没有任何影响。希望能让它更清楚一些。 – 2014-12-08 11:03:04

+0

在旧网站上:使用'重写规则b2chome/category/0/Product \ Range [R = 301,L]'。当你使用'http:// mydomain/b2c/b2chome.pgm'这是一个外部重定向到'http:// mydomain/category/0/Product Range' ... – Croises 2014-12-08 12:03:16

回答

0

我确实找到了解决方案,尽管不是我正在寻找的解决方案。我加了一个重定向到httpd.conf文件中,ScriptAliasMatch上面如下:

Redirect 301 /b2c/b2chome.pgm http://www.domain.com/category.pgm 

这至少工作,即使我现在只能把非PGM在.htaccess文件重定向。 .pgm重定向至少在数量上受到限制,而我始终会从旧网站找到从某处引用的非pgm链接,这些链接通常是论坛上的旧链接。