我有一个纯粹的个人网站(Ubuntu上的Apache2),并且为了防止外人知道指定域中有一个有效的HTTP服务器,它使用了神秘的URL。例如,
根据设计,
将返回HTTP 404错误。但
http://somesite.com/RJv968sr0S860Iq1VfW2P28dqgCTqNUOm51AMuQL
可能会做一些有用的事情。我确信这不是一个完全证明方法来阻止闯入者,机器人和黑客,但它仍然存在。
现在,除了模糊URL之外,我还使用HTTPS进行进一步保护,我为此Apache重写了对HTTPS的HTTP请求。
RewriteEngine ON
RewriteCond %{REMOTE_ADDR} !192\.168\.
RewriteCond %{REMOTE_ADDR} !127\.0\.0\.1
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}
它完全符合预期。
不幸的是,它并不是非常复杂,它还会重写无效的URL请求。例如,无效网址http://somesite.com将被重写为同等无效的网址https://somesite.com。但是,这种重写会让某人知道某些HTTP服务器附加到域名。
我想修复我的重写规则,以便Apache不会重写任何无效的URL。这可能吗?如果不是Apache,那么nginx或lighttpd呢?如果是这样,我该如何实现呢?