2010-11-22 28 views
1

有沒有一種方法可以使用正則表達式來重定向(301)URL他int .htacces中的方式,domain.com/My_Name.html將被重定向到domain.com/my-name? 需要與-全部更換_,小寫字符的和減去「.HTML」.htaccess字符重定向操作


編輯: 我需要全部更換_字符,不管有多少人是在URL中。

回答

1
RewriteEngine on 
RewriteRule ^(\w+)_(\w+)\.html$ ${tolower:$1}-${tolower:$2} 

尚未測試,但我敢肯定,這將工作。

+0

謝謝!唯一的問題是我不知道「_」字符的數量......我需要全部替換它們,不管它們中有多少個。對不起,以前不提的 – Joel 2010-11-22 08:59:54

+0

@Joel你應該可以合併規則:嘗試'RewriteRule _ \ -',然後是'RewriteRule ^([\ w - ] +)。html $ $ {tolower:$ 1}'。因爲它具有[特殊含義](http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule)作爲替換字符,所以我逃脫了'-'。 – jensgram 2010-11-22 09:12:03

+0

它看起來像apache不承認「tolower」,因爲它只是重定向我的「 - 」而忽略了字符串,但我會用我的方式工作:)謝謝! – Joel 2010-11-22 09:30:08