簡體   English   中英

.htaccess重寫/重定向mod或PHP腳本

[英].htaccess Rewrite/Redirect mod or PHP script

因此,目前我正在工作的電子商務公司正在從基於.NET的平台過渡到基於Magento PHP的網站。 我遇到的問題是,我們目前有1000個目標網頁在搜索引擎上排名良好。 我無法在新平台Magento內瀏覽所有這些頁面的301,而且我知道由於性能問題,無法將1000個靜態重定向添加到.htaccess文件中。

所以我的問題是,是否有一種方法可以在數據庫中為生成索引頁面URL的變量創建重寫或重定向規則。 如果有的話,從性能角度來看,僅使用.htaccess文件,僅使用PHP腳本還是將兩者結合使用,會更明智嗎?

以下是我們當前網址之一的示例,以及我們希望將其重定向到的示例:

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

這是我們用於生成重寫的數據的細分;

  1. / Clear_For_Life =數據庫中的VendorName列
  2. Aquariums_Bowls = DB中的子類別列
  3. AT = DB中的VendorCode列
  4. 70_180 = DB中的PriceRange列
  5. AQAQ = DB中的CategoryId列

想要重定向的URL; /清除生活水族館碗

在這里的任何幫助或建議,將不勝感激。

我不相信您可以使用mod rewrite更改大小寫或替換字符(“ _”至“-”)。

為什么您無法查看所有這些頁面301? 如果使用.NET訪問它們,那么無論您在哪里進行路由/解析url,都應該有一行代碼來進行php重定向。

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

所以我的問題是,是否有一種方法可以在數據庫中為生成索引頁面URL的變量創建重寫或重定向規則。 如果有的話,從性能角度來看,僅使用.htaccess文件,僅使用PHP腳本還是將兩者結合使用,會更明智嗎?

這聽起來像是RewriteMap的工作。 您需要訪問服務器或vhost配置並創建映射。 您可以使用此映射來調用可以從數據庫中獲取內容的腳本,然后確定新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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM