Я настроил фантомную платформу блоггинга. Это не позволяет вставлять «/», входит в систему ссылки на статью, но я хочу, чтобы они появились в моих ссылках, таким образом, я хочу, чтобы они были зафиксированы с 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 страницы.
Вам также необходимо убедиться, что ссылки в вашем программном обеспечении имеют правильный формат. nginx
не может перезаписывать ссылки на самих страницах, вы должны обрабатывать их другим способом.
Однако, заставляя nginx показывать / stuff-life
при доступе к / stuff / life
можно сделать так:
location ~ /stuff/(?<part>.+)$ {
rewrite ^ /stuff-$part last;
}
И ответ:
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;
}
}