Назад | Перейти на главную страницу

отрицательное регулярное выражение в Squirm (для Squid). Возможно?

Удалось ли кому-то выполнить отрицательное регулярное выражение (или его часть) с помощью Squirm?
Я пробовал использовать негативный прогноз и регулярные выражения, но Squirm 1.26 не понимает их.

Я просто хочу:
* Если URL-адрес начинается с «http: //» и содержит «учетную запись», перепишите / перенаправьте на 301: https: //
* Если URL-адрес начинается с «https: //» и НЕ содержит «account», затем перепишите / перенаправьте на 301: http: //

Пока что я делаю это, используя 2 строки perl, но перенаправители извилистого типа занимают меньше памяти

Благодаря Крису Футу, владельцу Squirm, у меня все получилось с его уловкой. Раньше мне не приходило в голову, что squirm остановит перезапись после совпадения с шаблоном

regexi ^(https:\/\/.*\/account.*)$ \1 account
regexi ^http:\/\/(.*\/account.*)$ 301:https://\1 account
regexi ^https:\/\/(.*)$ 301:http://\1 https

.
Крис объяснил мне, как поступать в этой ситуации:

То, что я сделал ранее, чтобы обойти общее универсальное правило перезаписи, - это разместить правило, соответствующее тому, что вы не хотите перенаправлять заранее, просто воспроизводя исходный URL без перенаправления 301. например.:

regexi (some_pattern) \1       # let through URL unwritten
regexi (http://mydomain/all-to-one-page\.html) \1 # allow \
      direct access to redirect page in the rule below.
regexi .* 301:http://mydomain/all-to-one-page.html  # all \
      other requests get redirected to a single page.