2014-12-08 114 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鏈接,這些鏈接通常是論壇上的舊鏈接。