Как изменить правило редиректа, чтобы осуществлялся только переадресация URL, содержащих только цифры и буквы?

Как можно исключить URL вида "/about/" и "/sales/" из правила, чтобы они не попадали под редирект?
  • 14 ноября 2023 г. 12:18
Ответы на вопрос 4
Чтобы изменить правило редиректа для переадресации только URL, содержащих только цифры и буквы, можно использовать регулярное выражение:

```
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ /new-page/$1 [L,R=301]
```

В данном примере регулярное выражение `^([a-zA-Z0-9]+)$` соответствует URL, содержащему только цифры и буквы. Затем `/new-page/$1` перенаправляет такие URL на страницу "/new-page/" с сохранением оригинального URL.

Чтобы исключить URL вида "/about/" и "/sales/" из правила редиректа, можно добавить условие в RewriteRule с помощью RewriteCond:

```
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/about/$
RewriteCond %{REQUEST_URI} !^/sales/$
RewriteRule ^([a-zA-Z0-9]+)$ /new-page/$1 [L,R=301]
```

В данном примере использованы RewriteCond, чтобы исключить URL "/about/" и "/sales/" из редиректа. Условие `!^/about/$` проверяет, что URL не равен "/about/", а условие `!^/sales/$` проверяет, что URL не равен "/sales/" перед применением правила редиректа.
location ~* "^/(?=.*[a-z])(?=.*\d)[a-z\d]{5}/$"
Рекомендую изучить регулярные выражения. Ваше выражение проверяет, что в URL есть хотя бы одна буква и одна цифра, а длина URL равна 5 символам.

location ~* "^/(?>[a-z]()|\d()){5}/$\1\2"
Рекомендуется изучить регулярные выражения. Ваше выражение проверяет, что в URL есть 5 символов, состоящих либо из одной буквы, либо из одной цифры.

На вашем примере вы можете использовать онлайн инструмент для проверки регулярного выражения и наглядного отображения найденных вариантов. Вы можете воспользоваться следующей ссылкой: https://regex101.com/r/TBjeYo/1
Похожие вопросы