2014-10-30 101 views
0

我們在Yii上構建網站(1.1.13);它是car pare parts shop & transaction management engine。 當其SEO檢查給予SEO公司與公司達成的結果:動態url生成器失敗

  1. 找到15000動態URL(「顯然不是所有的」 - 我的評論)
  2. 〜8 000人好像是長的,像這樣:http://tarex.ru/index.php?r=assortment/index&id=1536&Subsystem=Warehouse+automation&Reference=Assortment&Assortment_page=9&Assortment_sort=title.desc
  3. 到目前爲止,只有300頁在搜索引擎中註冊。
  4. 其中500個是錯誤的網址或無回覆(回覆代碼500)。 Ulrs是這樣的: http://tarex.ru/index.php?r=assortment/index&Assortment[groupCategory]=4&Assortment_page=46&Assortment_sort=agroup.desc('最有可能的分類重新加載/更新數據庫的原因 - 我的評論)。 他們聲稱這些故障(對於第4點)是動態url生成器故障的原因。

db中的分類是每天動態更新的。

該公司建議解決動態url生成器問題,或不要使用它來支持用戶友好的URL/SEO友好的URL。

如何解決動態url生成器失敗以及是否可以使用smth。其他建議?

更新

url管理配置已經關閉至今:

​​

當我註釋掉它的網站工作正常但一些子系統的菜單不工作的原因也必然有些GET參數..

+0

請發佈您的urlManager配置。 – 2014-10-30 10:39:20

+0

@Valentin Rodygin,我已經發布了ulrManagement配置 – 2014-10-30 10:48:26

+0

我建議您將'showScriptName'=> false添加到您的配置中,以使URL更加適合搜索引擎優化。 – 2014-10-30 10:50:22

回答

0

最近在店裏做了這樣的事情。

通常你會做到這一點:

1)對於每一個動態的URL 動態使得它的清潔網址arternative

2)從舊重定向到URL清潔。

3)利潤!

現在,至於細節:

最棘手的部分是理解新的URL是否可以形成如果是這樣,重定向到它。我想你可以在customUrlRule(這有點髒)或控制器(我更喜歡它)中做到這一點。

讓我們假設你已經選擇了一個控制器: 在控制器的動作中,確定是否有新的url用戶來自。如果有AND AND REQUEST URL!== NEW URL,那麼您只是繼續使用控制器邏輯。如果沒有,您將重定向到新的網址。我認爲它應該是舒服的,如果

1)兩種網址類型都使用或不同的控制器和操作進行處理,幷包括上述邏輯。

2)您正在使用某種方法給新舊類型的url,並將相同的參數傳遞給它們。例如,您可以使用Yii :: app() - > createUrl($ params)作爲新類型的Url,並使用一些自定義方法,即$ myModelInstance-> createUrl($ params)

3)建立和處理與custom URL rule

4)在你的url管理器,你有你的自定義規則的新網址和普通規則的舊優先級的網址。

概括起來

如果用戶從舊的URL雲,控制器的執行行動,其中一些額外的檢查完成。我們正在檢查是否可以建立一個新的url,我們也可以檢查一些額外的東西,即與一些額外的seo url數據庫同步,以瞭解這個url是否需要重定向。 如果可以建立新的網址 - 我們重定向到它。 瀏覽器請求使用您的自定義url規則解析的請求,並執行相應的控制器和操作。