【问题标题】:Fake rewriting with PHP and NGINX使用 PHP 和 NGINX 进行虚假重写
【发布时间】:2018-09-18 18:09:34
【问题描述】:

几年前,我制作了一个脚本,它可以使用 404 错误和重定向来错误地重写我的页面 - 用 PHP 编写。

有了这个系统,我可以在不接触 Apache 的情况下重写我的页面 - 除了通过 htaccess。我的系统根本不安全,但这不是当时的重点。

我正在使用这个:

.htaccess

ErrorDocument 404 /index.php?redirect

还有这个

index.php

if(isset($_GET['redirect']))
    {
        if (preg_match("#"."([0-9-]+)-([^0-9](?:.+))#isU", $_SERVER['REDIRECT_URL'], $redirect)) 
        {
            header("Status: 200 OK", false, 200);
            $redirect=abs($redirect[1]);
        }
        else header('Location: '.HOME_PAGE.'-E404.html');
    }

我的问题是:是否可以像以前一样伪造重写,但也可以使用 NGINX ?因为我不能那样做。

我的目标是使我的脚本可移植。没有人需要更改 NGINX 配置或 APACHE 配置。并且还编写了一个重写脚本以清理 URL。

谢谢 ;)

【问题讨论】:

  • 不想粗鲁,但我认为你需要先做一些功课。接下来,当在 Web 上公开某种服务器时,安全是第一条规则。如果不保护它,它很容易成为传播不良软件的猎物。安全总比后悔好。
  • 哈哈,谢谢你的建议。就像我说的,我的目标不是提供或使用我的脚本。这纯粹是为了知道它是否可能。这就是为什么我说“我不在乎安全”。因为,我想有一种方法——没有高安全性——可以做到这一点。

标签: php .htaccess nginx


【解决方案1】:

你可以用这种方式尝试 nginx try_files 指令:

# Inside some server config
location / {
    try_files $uri /404.php;
}

location ~ \.php$ {
    include         fastcgi_params;
    fastcgi_pass    unix:/run/php/php7.2-fpm.sock;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

这里我也使用fastcgi连接php-fpm服务器。

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 2020-09-03
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2021-01-06
    • 2021-10-10
    • 2013-03-29
    • 1970-01-01
    相关资源
    最近更新 更多