我已经运行YOURLS服务器来托管我公司的短网址,以便我们可以为客户提供简短的URL.
我正在使用Nginx,对于域的root,如果他们没有使用正确的短网址,我想重定向到我们的网站.因此,example.com / 218a重定向到短网址所指向的内容,但是example.com会访问我们的网站@ domain.com.
现在,我正在使用一个只有元刷新的index.html页面来重定向,但我想我应该能够在Nginx配置中做到这一点,它可能会更好.
有人可以用正确的方式帮助我,如果可能的话,在服务器级别发生这种情况而不是使用元刷新吗?
我已经尝试了一些我在这里找到的例子,但它们似乎都没有用.
这是我的配置文件供参考.
server {
server_name www.domain.com;
return 301 $scheme://domain.com$request_uri;
}
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/Nginx/html;
index index.html index.htm index.PHP;
# Make site accessible from http://localhost/
server_name http://domain.com;
location / {
#YOURLS
try_files $uri $uri/ /yourls-loader.PHP;
}
location ~ \.PHP${
try_files $uri =404;
include fastcgi_params;
fastcgi_pass PHP5-fpm-sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
}
最佳答案
首先,server_name指令在主服务器块中无效. server_name仅包含域名,而不包含URL的任何其他部分.
要回答您的实际问题,请添加以下配置:
location = / {
rewrite ^ http://domain.com permanent;
}
这使得所有与精确/位置重定向匹配的URI重定向到http://domain.com