пропустить подкаталог при замене подчеркивания на дефис из URL-адресов с помощью.htaccess код


Я должен заменить _ (подчеркивание) на- (дефис) из URL-адресов для целей SEO.У меня есть сотни файлов, поэтому я не могу изменить имена файлов по одному. one.So я написал несколько .htaccess Код для этого.

Это код, который я использую.

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

Он успешно меняет мои URL-адреса с подчеркивания на дефис.

Теперь у меня есть один подкаталог с именем "administrator", и я не хочу, чтобы URL-адреса этого каталога заменялись от подчеркивания до дефиса.

Поэтому я хочу пропустить URL-адреса этого каталога для пропуска .код htaccess.

Пожалуйста, помогите мне, как пропустить это.

Спасибо!

2 2

2 ответа:

Вы можете использовать отрицательный lookahead:

RewriteRule ^(?!administrator/)([^_]*)_(.*)$ /$1-$2 [R=301,L,NC]

Это позволит пропустить подкаталог /administrator/ из этого правила.

Можно также исключить отдельно:

RewriteCond %{REQUEST_URI} !^/administrator/
RewriteRule ^([^_]*)_(.*)$ /$1-$2 [R=301,L] 

Это проще, если вам нужно исключить более одного каталога, так как нужно просто добавить ту же строку снова.