正则表达式替换文件扩展名

时间:2011-09-28 13:02:59

标签: php regex

我想要一个正则表达式,用/更换.html文件扩展名www.example.com/page.html成为www.example.com/page/。我还要从此规则中排除某个文件夹,以便排除www.example.com/specialdir/中的任何内容。

编辑:这将用于php

2 个答案:

答案 0 :(得分:3)

最好使用htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.html [L,QSA]

来源:Snipplr

因此,它会将服务器端的所有http://somesite/someurl更改为http://somesite/someurl.html

答案 1 :(得分:1)

搜索

(www\.example\.com/(?!specialdir/).*)\.html$

并将所有内容替换为\1$1,具体取决于您的正则表达式实现。

编辑:在PHP中:

$result = preg_replace('%(www\.example\.com/(?!specialdir/).*)\.html$%', '\1', $subject);