今天看了一下Rewrite的基本语法,由于文章是别人写的,我这里就不写一样的了。突然想起来以前转过一篇关于防止独立IP网址被恶意解析的文章,下面给出另一个方案。
一本正经
我们先来了解下,根据语法介绍:“!”代表不是,和PHP是一样的哈。
那么根据301的写法,我们可否变通下呢?答案是肯定的。
- RewriteEngine On
- RewriteBase /
- RewriteCond %{HTTP_HOST} !yoururl.com [NC]
- RewriteRule ^(.*)$ http://www.yoururl.com/404.html [L,R=301]
如果默认就有.htaccess文件,那么前两行都已经有了,第三四行写在下面即可。其中这里就判断了域名不是yoururl.com的时候,301到自己的404页面或者别的预设的网址也可以。
但是细心的网友会发现,可是我不仅仅绑定一个域名啊。我还想IP可以直接访问呢?
- RewriteEngine On
- RewriteBase /
- RewriteCond %{HTTP_HOST} !yoururl.com [NC]
- RewriteCond %{HTTP_HOST} !www.yoururl.com [NC]
- RewriteCond %{HTTP_HOST} !127.0.0.1
- RewriteRule ^(.*)$ http://www.yoururl.com/404.html [L,R=301]
这样变通下就好了嘛。
题外话
NC是啥意思呢?其实就是不区分大小写。
L则是这条规则结束了。
R是重定向。
其他的嘛有兴趣自己去研究。
2020年06月23日 12:17 -9楼
RewriteCond %{HTTP_HOST} !^$
空的要加上啊,不然可能会带来某些问题,比如说在用户通过代理服务器访问时。这大多存在虚拟主机的网站,可能会跳转本地或者无法访问等异常。