mod_rewrite的简单重写规则

时间:2011-04-27 21:58:01

标签: php regex apache .htaccess mod-rewrite

我需要编写一个简单的mod_rewrite规则,如下所示:

something.php ==> somehting (just get rid of the .php)
something_else.php ==> something/else (replace _ with /)

所以,例如它会是这样的:

www.mysite.com/something.php (would be rewritten as) www.mysite.com/something
www.mysite.com/something_else.php (would be rewritten as) www.mysite.com/something/else

由于我不熟悉正则表达式,我认为要求能够在5s内完成此操作而不是花费数天(周?:P)学习正则表达式和mod_rewrite的人会更简单。

谢谢:)

1 个答案:

答案 0 :(得分:2)

在.htaccess文件中尝试以下规则:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteRule ^([^_]+)_([^_]+)\.php/?$ /$1/$2 [R=301,L]
RewriteRule ^([^.]+)\.php/?$ /$1 [R=301,L]

这将执行外部重定向,如果您不想这样做,请从上方删除R=301,标记。