Недавно я получил VPS с nginx и переместил свой экземпляр WordPress. После некоторого просмотра я получил постоянные ссылки для работы. Блог находится внутри blog
папка.
Я хотел бы получить запросы к example.com
быть перенаправленным на example.com/blog
. Однако запросы кexample.com/doc/...
должен не быть перенаправленным на example.com/blog/doc/...
.
Я искал другие вопросы / ответы, но все они привели к бесконечному циклу перенаправления.
Это текущий конфиг:
server {
listen 80;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /usr/share/nginx/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php;
server_name mysite.com;
location / {
# Redirect to /blog
}
location /blog/ {
try_files $uri $uri/ /blog/index.php?$args;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
# pass the PHP scripts to FastCGI server listening on the php-fpm socket
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
`` ''
Использовать это:
location = / {
return 301 http://example.com/blog;
}
Ключевым моментом здесь является =
, что заставляет nginx применять это правило только к запросам, поступающим в корневую папку, и больше никуда.