нечувствительные к регистру nginx переписывают

Удалите неиспользованные библиотеки из/etc/php5/apache2/conf.d. Вероятно, Вам не нужны pdo.ini и pdo_mysq.ini или mysqli.ini, Это сохранит немногих Мега из Поршня

15
задан 13 April 2013 в 09:00
3 ответа

У меня только что была (и исправлена) та же проблема, и я оказался здесь, пытаясь найти ответ. В документации nginx ( http://nginx.org/en/docs/http/ngx_http_rewrite_module.html ) четко не говорится, что ~ * работает только внутри оператора if, но очевидно, что это кейс.

Чтобы получить сопоставление регулярных выражений без учета регистра для перезаписи URL ngnix вне оператора if, мне пришлось использовать стиль Apache / Perl:

rewrite "(?i)foobar" http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect;

См. http://perldoc.perl.org/perlretut .html (поиск нечувствительных). Также кажется, что префикс (? I) за пределами определенной группы захвата позволяет применять его ко всей строке поиска. Примечание: похоже, это НЕ работает с «^ (? I) foobar», потому что кажется, что подразумевается «^».

Но на всякий случай,

10
ответ дан 2 December 2019 в 20:46

Что я нашел, чтобы заставить эту работу работать:

rewrite ^/foobar http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect;

Вам нужно сделать только это:

rewrite (?i)^/foobar http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect;

Это просто означает добавить (? I), а в остальном все то же самое для сопоставления.

29
ответ дан 2 December 2019 в 20:46

Работая сейчас над веб-сайтом, я обнаружил, что это работает очень просто. В блоке сервера вам просто нужно добавить записи местоположения в следующем порядке:

#This rule processes the lowercase page request.
#The (~) after the location tag specifies it is case sensitive
# so it overrides the next rule, which would continuously redirect
location ~ /index[.]html {
#process the index.html page       
}

#This rules rewrites the index request which may be non-case-sensitive
# to all lowercase so the previous rule can process it.
location ~* /index[.]html {
   rewrite ^(.*)$ $scheme://$http_host/index.html redirect;
}
2
ответ дан 15 January 2020 в 22:43

Теги

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