搜索引擎友好URL的htaccess / mod_rewrite

时间:2011-02-17 11:24:15

标签: apache .htaccess mod-rewrite

我在网络根目录中有一堆文件: -

/abc-674.php
/def-643.php
etc.etc。

我想在请求以下网址时显示这些内容,而不更改浏览器中的网址: -

/products/abc-674/this_can_be_anything.php
/products/abc-674/or_this.php

都重定向到/abc-674.php和

/products/def-643/this_can_be_anything.php
/products/def-643/or_this.php

都重定向到/def-643.php。

所以,基本上, products / 与下一个 / 之间的位是目标,而之后的任何内容都可以被有效忽略。

如果重要的话,我已经在我的.htaccess中有一些代码将所有流量引导到我的优先域(使用www): -

# Direct all traffic to domain.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC] 
RewriteCond %{HTTP_HOST} !^domain$ [NC] 
RewriteRule ^(.*) http://www.domain.com/$1 [R=301,L]

编辑:澄清 - 上面的第二行是因为我只通过http://domain/访问我的开发服务器上的站点,所以不希望重写申请这些请求。但是,我希望这个新的重写适用于所有请求。

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

我认为,您可以使用.htaccess中的下一个规则:

RewriteRule ^products/([\d\w]+)/(.*)$ /$1.php