2012-08-02 78 views
1

因此,目前我正在從事的電子商務公司是從基於.NET的平臺過渡到基於Magento PHP的網站。我遇到的問題是,我們目前的着陸頁有1000個在搜索引擎上排名很好。我無法在新平臺中使用所有這些頁面--Magento,而且我知道由於性能問題,我無法將1000個靜態重定向添加到.htaccess文件中。.htaccess重寫/重定向mod或PHP腳本

所以我的問題是,有沒有辦法在我們的數據庫中爲變量創建重寫或重定向規則,以生成索引頁面的URL。如果有的話,性能明智的做法是單獨使用.htaccess文件,僅使用PHP腳本還是兩者兼而有之?

這是我們目前的URL和我們想什麼樣的一個樣本被重定向到:

當前URL /Clear_For_Life-Aquariums_Bowls-AT-70_180-AQAQ-ct.html

下面是我們用來生成重寫的數據細目;在DB中DB

  • Aquariums_Bowls =子目錄柱AT =在DB
  • 70_180 = PriceRange
  • AQAQ =類別ID列中的列在DB DB
  • VENDORCODE柱

    1. /Clear_For_Life = VENDORNAME柱

    將要重定向到的所需URL; /爲生活水族館碗清除

    任何幫助或建議在這裏將不勝感激。

    +1

    數據庫調用和php腳本真的比apache處理的htaccess文件更有效嗎? – 2012-08-02 22:37:29

    +0

    我只是不確定只有使用.htaccess文件的重寫和重定向組合才能處理重寫和重定向舊URL的複雜性。你的問題幾乎涵蓋了我的問題的一部分,儘管它會嗎? – 2012-08-02 22:44:25

    +0

    你是否有1000個靜態頁面,1個動態頁面解析請求url? – 2012-08-02 22:50:49

    回答

    0

    所以我的問題是,有沒有辦法爲我們的數據庫中的變量創建重寫或重定向規則,以生成索引頁面的URL。如果有的話,性能明智的做法是單獨使用.htaccess文件,僅使用PHP腳本還是兩者兼而有之?

    這聽起來像是一個工作RewriteMap。您需要訪問服務器或虛擬主機配置並創建地圖。您可以使用此映射來調用可以從數據庫獲取某些內容的腳本,然後決定新URI的外觀。的RewriteMap最簡單的用法可能是:

    RewriteMap remap prg:/path/to/script 
    

    ,以後你可以簡單地做:

    RewriteRule ^(.*)$ /${remap:$1|$1} [L] 
    

    /path/to/script需要採取的輸入像Clear_For_Life-Aquariums_Bowls-AT-70_180-AQAQ-ct.html,分析它,並正確輸出clear-for-life-aquariums-bowl

    +0

    謝謝一堆喬恩我認爲這可能正是我需要的。 – 2012-08-03 00:13:15

    0

    我不相信你可以改變大小寫或用mod重寫替換字符('_'到' - ')。

    爲什麼你不能301所有這些網頁? 如果他們正在使用.NET訪問,那麼你在哪裏做路由/解析網址應該有一行代碼來做PHP重定向。

    +0

    的字符替換可以與國防部重寫這樣來來達到的;選項+的FollowSymLinks RewriteEngine敘述在 RewriteBase/ 重寫規則\(HTML | PHP)$ - [S = 4] 重寫規則^([^ _ *) _([^ _] *)_([^ _] *)_([^ _] *)_(。*)$ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor:Yes] RewriteRule^[^ _] *)_([^ _] *)_([^ _] *)_(。*)$ $ 1- $ 2- $ 3- $ 4 [E = uscor:Yes] RewriteRule ^([^ _ *)_([^ _] *)_(。*)$ $ 1- $ 2- $ 3 [E = uscor:Yes] RewriteRule ^([^ _] *)_(。*)$ $ 1- $ 2 [E = uscor:是] RewriteCond%{ENV:uscor} ^是$ RewriteRule(。*)http://d.com/$1 [R = 301,L] – 2012-08-02 23:01:36

    +0

    舊的.NET服務器將會一去不復返過渡。 – 2012-08-02 23:02:45

    0

    我說使用htaccess,並編寫一個簡單的實用程序,從301細節列表中生成所述htaccess文件。