2013-02-12 3 views
3

Я использую nginx в моем приложении Java, и моя проблема в том, что nginx объединяет косые черты, и я не могу перенаправить свой сайт на правильную версию.Nginx merge_slashes redirect

Например:

http://goout.cz/cs/koncerty///praha/ 

сливается с

http://goout.cz/cs/koncerty/praha/ 

, а затем я не могу признал искаженный URL и выполнить перенаправление.

Я попытался установить

merge_slashes off; 

, а затем:

rewrite (.*)//(.*) $1/$2 permanent; 

Но это не имеет никакого эффекта и // остается в URL.

Как я могу это достичь?

ответ

5

Попробуйте это (непроверенный):

merge_slashes off; 
rewrite (.*)//+(.*) $1/$2 permanent; 

Это может привести к нескольким переадресациям, если есть несколько групп косых черт, хотя.

Как это:

http://goout.cz/////cs/koncerty///praha/ 

Может пойти:

http://goout.cz/cs/koncerty///praha/ 

Тогда, наконец:

http://goout.cz/cs/koncerty/praha/ 
1

Это работает хорошо, но для моей установки добавление port_in_redirect off; было необходимо.

1

Мы сталкиваемся с той же проблемой из-за ошибки, добавим две косые черты в URL-адрес, а nginx вернет 301 код ошибки для URL-адреса с двумя косой чертой.

Раствор для меня:

Добавить merge_slashes off; в nginx.conf файл, а в месте части, добавить rewrite (.*)//+(.*) $1/$2 break;

Настройка место для меня, как показано ниже:

location/{ 
     rewrite (.*)//+(.*) $1/$2 break; 
     proxy_pass http://http_urltest; 
     proxy_http_version 1.1; 
     proxy_set_header Connection ""; 
     proxy_buffers 4096 32k; 
     proxy_buffer_size 32K; 
     proxy_busy_buffers_size 32k; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 

После оных эти две строки, когда я получаю доступ к моему URL-адресу с двумя косой чертой, он вернет результат с одной косой чертой.

-1

Попробуйте это (как Nginx только и Nginx с openresty конфигурации) вы можете улучшить сайт SEO, делая эти 301 Перенаправление

пожалуйста держать этот код в разделе сервера для Nginx сайта файл конф

server { 

........ 
........ 

set $test_uri $scheme://$host$request_uri; 
if ($test_uri != $scheme://$host$uri$is_args$args) { 
    rewrite^$scheme://$host$uri$is_args$args? permanent; 
} 

location { 
    ................ 
    ................ 
} 

}

его работы хорошо для меня, и я использую этот код сейчас

пример: -

запрос url- http://www.test.com//test///category/item//value/

Result URL: - http://www.test.com/test/category/item/value/

301 перенаправления так, что SEO сайта не идет вниз

+0

'если' зло: https: //www.nginx. ком/ресурсы/вики/запуск/темы/глубина/ifisevil / – MacroMan