我刚刚在 github 上看到了这个天才脚本:
https://github.com/jsavoie/proof-of-work-login
我的问题是:为什么 POW 登录在 2018 年还没有成为世界标准?这绝对是天才!
为什么老式验证码和重新验证码仍然如此普遍?
我在这方面花了很多时间,但找不到解决方案。我需要一种方法将相同的 url 但具有不同的根目录指向同一个应用程序。我不想使用重写,因为应用程序必须处理根目录名称,重写会丢弃它。
http://www.host.com/a/ --> /var/www/html/project/
http://www.host.com/b/ --> /var/www/html/project/
http://www.host.com/c/ --> /var/www/html/project/
Run Code Online (Sandbox Code Playgroud)
我设法在 nginx 中配置了一个具有固定名称的别名目录,vdirectory并使 nginx 将请求转发到 fastcgi。
location /vdirectory {
alias /var/www/html/project/;
try_files $uri $uri/ /vdirectory/index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Run Code Online (Sandbox Code Playgroud)
以上工作正常。
由于我不想使用固定的根目录名称,而是使用任意的名称,这是我到目前为止所管理的:
location ~ ^/(.?)$ {
alias /var/www/html/project/;
try_files $uri $uri/ /$1/index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Run Code Online (Sandbox Code Playgroud)
不用说,它返回 404。这是一个好兆头,因为这意味着 regex 已识别路径,但请求未正确转发。
工作配置和错误配置之间的唯一区别是/vdirectoryvs~ ^/(.?)$