我已经运行 YOURLS 服务器来为我的公司托管短网址,以便我们可以向客户提供短网址。
我使用的是 nginx,对于域名的根目录,如果它们没有使用正确的短网址,我想重定向到我们的网站。因此 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;
}
}
答案1
首先,该server_name
指令在您的主块中无效server
。server_name
仅包含域名,不包含 URL 的任何其他部分。
为了回答您的实际问题,请添加以下配置:
location = / {
rewrite ^ http://domain.com permanent;
}
这使得所有与确切/
位置匹配的 URI 都重定向到http://域名.com