我正在使用托管于此示例 URL 上的 matomo:
因为我想保护 matomo 的管理页面,所以我为托管在以下特定域上的 Cloudflare Access w/ Zero Trust:
当我直接访问 CF 链接时,它工作正常。但是当我尝试访问原始链接时,仍然可以访问登录管理页面。我如何重定向来自https://testmatomo.azureapp.com/index.php(所有管理页面都从这个/index.php***开始)https://testmatomo.companyname.com
编辑:
只有位于的管理页面
应重定向到新 URL。由于我们正在进行浏览器跟踪,因此所有请求仍应重定向到旧 URL。
这是我当前的配置:
server {
server_name testmatomo.azureapp.com;
root /var/www/matomo/;
index index.php;
location ~ ^/(index|matomo|piwik|js/index).php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location = /plugins/HeatmapSessionRecording/configs.php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~* ^.+\.php$ {
deny all;
return 403;
}
location / {
try_files $uri $uri/ =404;
}
location ~ /(config|tmp|core|lang) {
deny all;
return 403;
}
location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)>
allow all;
}
location ~ /(libs|vendor|plugins|misc/user) {
deny all;
return 403;
}
答案1
有几种方法可以做到这一点,请选择最适合您情况的方法。编辑您的 nginx 配置文件并向其中添加必要的信息。
server {
# Temporary redirect to an individual page
rewrite ^/old-url$ http://www.example.com/new-url redirect;
}
server {
# Permanent redirect to an individual page
rewrite ^/old-url$ http://www.example.com/new-url permanent;
}
server {
# Permanent redirect to non-www
server_name www.example.com;
rewrite ^/(.*)$ http://example.com/$1 permanent;
}
server {
# Permanent redirect to www
server_name example.com;
rewrite ^/(.*)$ http://www.example.com/$1 permanent;
}
server {
# Permanent redirect to new URL
server_name example1.com;
rewrite ^/(.*)$ http://example2.com/$1 permanent;
}
最后一个可能适合你的情况。然后检查你的配置并重新启动 nginx:
$ nginx -t
$ systemctl restart nginx