Nginx переписывают: замена - с /

Я настроил фантомную платформу блоггинга. Это не позволяет вставлять «/», входит в систему ссылки на статью, но я хочу, чтобы они появились в моих ссылках, таким образом, я хочу, чтобы они были зафиксированы с nginx, переписывает.

Ссылка в браузере похожа на это:

http://blog.site.com/stuff-life/

И я хочу, чтобы это было похоже на это:

http://blog.site.com/stuff/life/

Само собой разумеется, что это должно быть применено для многих ссылок, начинающих с "материала -*", не для одного.

Я нашел это, но это слишком сложно для меня:

http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

Моя конфигурация похожа на это:

server {
listen 80;
server_name blog.site.com;
access_log /var/log/nginx/ghost.log;
error_log /var/log/nginx/ghost.error.log;
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
        }
}

Таким образом, как я делаю переписывание в своем случае?Спасибо.

Обновление.

Теперь я пытаюсь сделать это этот путь:

server {
listen 80;
server_name somesite.com;
access_log /var/log/nginx/ghost.log;
error_log /var/log/nginx/ghost.error.log;
location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header HOST $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://127.0.0.1:2368;
    proxy_redirect off;
}


location /stuff- {
    rewrite ^/stuff-(.*) http://$server_name/stuff/$1 permanent;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header HOST $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://127.0.0.1:2368;
    proxy_redirect off;
}


}

И похоже, что nginx передает ссылки rewrited на фантом. И я получаю 404 страницы.

0
задан 25 January 2015 в 21:18
2 ответа

Вам также необходимо убедиться, что ссылки в вашем программном обеспечении имеют правильный формат. nginx не может перезаписывать ссылки на самих страницах, вы должны обрабатывать их другим способом.

Однако, заставляя nginx показывать / stuff-life при доступе к / stuff / life можно сделать так:

location ~ /stuff/(?<part>.+)$ {
    rewrite ^ /stuff-$part last;
}
0
ответ дан 5 December 2019 в 12:59

И ответ:

server {
# <...>

rewrite ^/stuff-(.*) /stuff/$1 permanent;
rewrite ^/stuff/(.*) /stuff-$1;

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header HOST $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://127.0.0.1:2368;
    proxy_redirect off;
}
}
0
ответ дан 5 December 2019 в 12:59

Теги

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