2013-02-15 3 views
0

Мне нужно создать правило переадресации 301, которое будет соответствовать/заменить символы подчеркивания _ тире - и удалить конечный .html. У URL-адресов может быть любое количество символов подчеркивания _, что делает это трудным для меня.Преобразование PHP preg_replace в htaccess rewrite

В PHP я могу сделать это так:

$subject = 'this_is_a_bad_url.html';  
$pattern = array('/(_)/', '/.html/'); 
$replace = array('-', ''); 
$output = preg_replace($pattern, $replace, $subject); 
//$output would result to 'this-is-a-bad-url' 

Как бы я пишу это в .htaccess?

Спасибо за помощь.

+0

@John Я действительно не знаю, где начать использовать несколько замен в одном регулярном выражении: / – user2076817

ответ

1

попробовать этот

Options +FollowSymLinks -MultiViews 
    RewriteEngine on 
    RewriteCond %{REQUEST_URI} ^(.*?)_(.*?)$ [NC] 
    RewriteRule^/%1-%2 [R,L] 
    RewriteCond %{REQUEST_URI} ^(.*?).html$ [NC] 
    RewriteRule^/%1 [R,L]