我最近买了一个带 nginx 的 VPS,并将我的 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;
}
}
```
答案1
用这个:
location = / {
return 301 http://example.com/blog;
}
这里的关键是=
,这使得 nginx 仅将此规则应用于到达根文件夹的请求,而不应用于其他任何地方。