2011-08-26 95 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