2011-08-26 94 views
0

我想「/products/MFG/date/SKU.html」改寫爲「MFG-SKU.html」mod_rewrite的子目錄變量

我們當前重寫下面只重寫爲「SKU.html」。

RewriteCond %{REQUEST_URI} ^/products/ 
RewriteRule /([^/]*)$ /$1 [R=301,NC,L] 

如何將MFG作爲變量包含在SKU之前?

一個例子網址爲:

http://example.com/products/MFG/2010-04-01/1234.html =>http://example.com/MFG-1234.html

MFG和1234是將改變的變量。

+0

請提供一個URL示例(真實網址示例) - 在查看需要完成的操作時構建規則會更容易。我需要'從URL' =>'到URL'。 – LazyOne

+0

謝謝,更新了帖子,以反映一個例子 – mrbnetworks

回答

0

那麼,這應該爲你做的工作:

RewriteRule ^products/([^/]+)/[0-9-]+/([^/]+)\.html$ $1-$2.html [R=301,L] 
  1. 會重定向到/products/MFG/2010-04-01/1234.html/MFG-1234.html

  2. 它不驗證參數(MFG,SKU,日期):

    • MFG部分可以是1個的路徑段(這意味着除了斜槓/任何字符)內的任何:可以是字母,數字,Unicode字符等。如果您需要限制它 - 只需將模式([^/]+)修改爲您想要的任何限制;
    • date部分有非常簡單的驗證 - 只允許數字和-被允許。所以即使123456-09876也能正常工作。再一次 - 如果你需要更精確的驗證,只需要模式;
    • SKU部分 - 與MFG部分相同的驗證部分。
  3. 此規則旨在放置在網站根文件夾的.htaccess中。如果放置在其他地方可能需要一些小的調整。

+0

@mrbnetworks所以..這是否適合你? – LazyOne

+0

這確實對我有用。 TY! – mrbnetworks