如何用.htaccess重写路径?本地项目跳转至陌生站点求助
首先,咱们先聊聊.htaccess的解决方案——这确实是一个值得尝试的方向,但得先从排查现有配置开始:
一、用.htaccess拦截恶意重定向
先检查现有.htaccess文件:
去你的项目根目录(localhost/myproject/)和user子文件夹下,看看有没有陌生的.htaccess文件,或者现有文件里有没有类似下面的恶意规则:Redirect 301 /myproject/user/home.php http://bookmark.com # 或者恶意Rewrite规则 RewriteRule ^user/home.php$ http://bookmark.com [L,R=301]如果有,直接删除这些规则,或者备份后清空
.htaccess再测试。添加防御性重写规则:
如果没有找到恶意规则,你可以在myproject/目录下的.htaccess里添加以下规则,强制拦截外部重定向:RewriteEngine On # 针对home.php的请求,强制留在localhost RewriteCond %{HTTP_HOST} ^localhost$ [NC] RewriteRule ^user/home.php$ - [L] # 额外保险:如果有任何跳转到外部站点的尝试,强制转回本地 RewriteCond %{HTTP_HOST} !^localhost$ [NC] RewriteRule ^user/home.php$ http://localhost/myproject/user/home.php [L,R=302]保存后重启本地服务器(比如XAMPP的Apache),再访问测试。
二、其他必须排查的方向
既然你已经试过杀毒、恢复系统还原点都没用,那大概率是项目文件或服务器配置被篡改了,试试这些步骤:
检查home.php文件本身:
直接打开user/home.php,仔细看开头、结尾,以及中间有没有被注入恶意跳转代码,比如:header("Location: http://bookmark.com"); exit;或者被包含了陌生的PHP文件(比如
include "random_file.php";),甚至是base64编码的恶意代码(看起来像一串乱码的base64字符串,用base64_decode解码后会暴露跳转逻辑)。如果发现,直接删除这些恶意代码。排查本地服务器的配置文件:
如果你用的是XAMPP/WAMP这类集成环境,去检查Apache的主配置文件(httpd.conf)和虚拟主机配置(httpd-vhosts.conf),有没有被添加针对/myproject/user/home.php的重定向规则,或者有没有加载陌生的Apache模块。清空浏览器缓存和站点数据:
有时候浏览器会缓存旧的重定向规则,你可以按F12打开开发者工具,在「网络」面板勾选「禁用缓存」,然后刷新页面;或者直接清除localhost站点的Cookie和本地存储(不同浏览器操作略有不同,一般在设置的隐私选项里)。检查本地代理或VPN:
如果你平时开了代理、VPN或者浏览器的代理插件,先全部关掉再测试——有些恶意代理会篡改本地HTTP请求的跳转目标。重新安装本地服务器软件:
比如XAMPP的Apache、PHP核心文件可能被恶意篡改,你可以下载一份干净的官方安装包,备份好你的项目文件后,覆盖现有服务器文件,再重新部署项目测试。用进程监控工具排查系统劫持:
试试用Process Monitor(Windows)或者lsof(Linux/macOS)监控访问home.php时的文件读取和网络请求,看看有没有陌生进程在干预这个请求——有些深层恶意软件会劫持本地HTTP流量,普通杀毒软件可能查不出来。
内容的提问来源于stack exchange,提问作者user45678

