2011-12-20 290 views
3

我必须谦虚自己,并要求就一个我认为我理解的主题提供一些指导。我正在努力解决301重定向问题,并希望没有专注于这个问题的人能帮助我看清光明。.htaccess重定向到文件

我的域曾经将文件夹用作主要产品目标,即domain.com/prod1,domain.com/prod2等,但最近将目标更改为.php文件,即domain.com/prod1.php ,domain.com/prod2等。看起来我有问题,因为我的源和目标具有相同的名称,并且我选择了导致重定向循环的通配符。我的正常重定向工作正常,但我一直无法找到将这些不存在的文件夹重定向到各自的php文件的秘密武器。我的最新尝试如下:

RedirectMatch 301 ^/prod1 http://domain.com/prod1.php 

也许这只是为时已晚,但我真的可以使用一些帮助,让(我)理顺。谢谢!

回答

2

你可以行的结尾添加到您的匹配的正则表达式:^/prod1(/)?$

+0

我不知道(/)分组是多余的;) – 2011-12-20 03:21:16

+0

是的,我希望它是那么简单。感谢您的快速澄清,所有这一切再次在我疯狂的大脑中! – Jimmyb 2011-12-20 03:25:37

2

你的正则表达式你的目标(^/prod1比赛/prod1.php)相匹配。所以你可以添加一个终止字符到你的regexp或者使用mod_rewrite和一个条件。

RedirectMatch 301 ^/prod1/?$ http://domain.com/prod1.php 

或者:

RewriteEngine On 
# request doesn't end with ".php" 
RewriteCond %{REQUEST_URI} !\.php$ 
RewriteRule ^([^/]+)/?$ http://domain.com/$1.php [R=301]