我参考加密整站的规则和网上的教程在源文那新增了配置 但在登录界面验证密码成功后出现403错误,根据我的分析应该是将login.php文件直接下载而不是作为文件执行。 宝塔是用了一个php.conf文件来让他执行login.php从而显示正常的登录界面,但appnode貌似不行。我不知道用appnode的话应该怎么做。
server { listen 80; listen 443 ssl http2; server_name www.baid.cn; charset utf-8; ssl_certificate /data/basic/sites/www.baidu.cn/ssl/site.crt; ssl_certificate_key /data/basic/sites/www.baidu.cn/ssl/site.key; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:5m; ssl_session_timeout 5m; keepalive_timeout 75s; keepalive_requests 100; access_log /data/basic/sites/www.baidu.cn/log/nginx/access.log; error_log /data/basic/sites/www.baidu.cn/log/nginx/error.log; root /data/basic/sites/www.baidu.cn/www; set_real_ip_from 127.0.0.1; real_ip_header X-Forwarded-For; real_ip_recursive on; if ($scheme = http) { return 301 https://$host$request_uri; } gzip on; gzip_comp_level 6; gzip_min_length 1k; gzip_types text/plain text/css text/xml text/javascript text/x-component application/json application/javascript application/x-javascript application/xml application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype; brotli on; brotli_comp_level 6; brotli_min_length 1k; brotli_types text/plain text/css text/xml text/javascript text/x-component application/json application/javascript application/x-javascript application/xml application/xhtml+xml application/rss+xml application/atom+xml application/x-font-ttf application/vnd.ms-fontobject image/svg+xml image/x-icon font/opentype; client_max_body_size 10m; location / { index index.html index.htm index.php; if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } } location ~ ^/.+\.php(/|$) { include conf.sitemgr.d/global/conf/fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/basic/sites/www.baidu.cn/www$fastcgi_script_name; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_read_timeout 60s; fastcgi_pass unix:/data/basic/sites/www.baidu.cn/php-pool/php-fpm.sock; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|swf|eot|svg|ttf|woff|woff2)$ { expires 30d; valid_referers none blocked server_names; if ($invalid_referer) { return 403; access_log /data/basic/sites/www.baidu.cn/log/nginx/invalid_referer.log; } log_not_found off; } }
源文如上所示,网站为typecho,nginx的全局源文我没有改动。 (为了安全我将以我的网站域名命名的文件夹变成了www.baidu.cn,应该不影响吧)
我用宝塔临时搭的测试网站 www.neweden.cn/admin/ 账户密码 admin admin 如果注释掉include enable-php-72.conf; 就变成下载login.php了,appnode则是由于禁止下载而返回了403错误
在appnode自定义源文中添加以下配置:
location /admin/ { auth_basic 'AppNode HTTP Basic Authentication'; auth_basic_user_file /data/php72/sites/appnode.test/conf/htpasswd; }
打开 http://appnode.test/admin/test.php 测试是正常的。 如果不理解nginx源文代码的含义,请勿随意复制粘贴。 其它面板问题请咨询其它面板厂商。
location /admin/ { index index.php; auth_basic 'Admin Auth'; auth_basic_user_file /data/basic/sites/vhost/conf/passwd; }
你好,我自己测试找到了方法,typecho加密admin目录需要使用index index.php;来让网页默认加载index.php文件。 否则将以目录形式显示