apache rewrite:как проверить наличие пустого или отсутствующего параметра запроса?

лучше всего объяснить на примере:

- If I enter either URLs in my brower 
  - www.myhost.com/my-page.html?year=
  - www.myhost.com/my-page.html

- I then want to get redirected to  www.my-2nd-host.com/current-year/my-page.html

Любые идеи как это сделано? Спасибо.

1
задан 2 November 2021 в 04:41
1 ответ

Вы можете сделать это следующим образом, используя mod_rewrite:

RewriteEngine On
RewriteCond %{QUERY_STRING) !(^|&)year=[^&]+
RewriteRule ^/?my-page\.html$ https://www.my-2nd-host.com/current-year/my-page.html [R=302,L]

Регулярное выражение (^|&)year=[^&]+проверяет наличие yearпараметра URL с не-пустым значением. Затем префикс !отрицает выражение, поэтому оно успешно, когда этот параметр URL либо пуст, либо отсутствует вообще.

1
ответ дан 2 November 2021 в 09:13

Теги

Похожие вопросы