301 перенаправление для URL, содержащего подчеркивания

#regex #apache #.htaccess #redirect

#регулярное выражение #apache #.htaccess #перенаправление

Вопрос:

Я хочу

перенаправление /directsystems/education/index/name/system_one

Для

http://www.mysite.com/directsystems/education/index/name/system-one

Не могли бы вы, пожалуйста, показать мне правило перенаправления 301 для htaccess? Поскольку я хочу перенаправить undescores с дефисами

Ответ №1:

Чтобы заменить все символы подчеркивания _ на дефис - в URI, используйте следующие правила в вашем файле .htaccess:

 Options  FollowSymlinks -MultiViews
RewriteEngine on

RewriteRule ^([^_] )_([^_] )(_.*)$ /$1-$2$3 [N,DPI]
RewriteRule ^([^_] )_(.*)$ /$1-$2 [L,R=301,DPI]
  

Это перенаправляет URL-адрес:

http://localhost/directsystems/education/index/my_name/system_one

Для

http://localhost//directsystems/education/index/my-name/system-one

Ответ №2:

Попробуйте это:

 RewriteRule ^([^_]*)_([^_]*)$ $1-$2