本文作者:心月

通过htaccess文件配置实现对apache服务器访问的限制

心月IT博客 12-03
通过htaccess文件配置实现对apache服务器访问的限制摘要:很多朋友限制访客访问服务器和网站都是通过网站程序来实现的。 ​其实完全可以对服务器配置实现访问限制,而且通过对服务器配置实现的访问限制比在程序中设置访问限制更安全可靠。

        Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。而很多朋友限制访客访问服务器和网站都是通过网站程序来实现的。

        其实完全可以对服务器配置实现访问限制,而且通过对服务器配置实现的访问限制比在程序中设置访问限制更安全可靠。

下面就以实例来实现通过htaccess配置文件来实现访问控制。

1、实现不同的 IP 访问网站展示不同的内容

服务器域名:http://fx43.caseuuu.top/

配置内容:

 RewriteEngine On
<IfModule mod_rewrite.c>
 RewriteCond %{http:X-Forwarded-For}&%{REMOTE_ADDR} (59.42.239.150) [NC]
 RewriteRule (.*) guangzhou1.html  [NC]
 RewriteCond %{http:X-Forwarded-For}&%{REMOTE_ADDR} (223.104.1.252) [NC]
 RewriteRule (.*) guangzhou2.html  [NC]
</IfModule>

guangzhou1.html 页面的内容:

<html>
	<head>
		<meta charset="utf-8">
		<title>广州页面-PC端</title>
	</head>
	<body>
		广州-pc页面:页面内容
	</body>
</html>

guangzhou2.html 页面内容

<html>
	<head>
		<meta charset="utf-8">
		<title>广州页面-移动端</title>
	</head>
	<body>
		广州-移动端页面:页面内容
	</body>
</html>

下面分别在PC端和手机移动端访问 http://fx43.caseuuu.top/

PC端的访问结果

PC端的访问结果


移动端的访问结果

移动端的访问结果

从访问结果来看,虽然访问的是同一个域名,但看到的内容却完全不一样,这就说明IP控制生效了。


2、实现不同浏览器访问展现不同内容的访问控制

配置内容

 RewriteEngine On
<IfModule mod_rewrite.c>
 RewriteCond  %{HTTP_USER_AGENT}  ^.*(iPhone|iPad).*
 RewriteRule  (.*)                 ipad.html?$1  [L]
 RewriteCond  %{HTTP_USER_AGENT}  ^.*(Android).*
 RewriteRule  (.*)                 android.html?$1  [L]
</IfModule>

ipad.html 页面内容:

<html>
	<head>
		<meta charset="utf-8">
		<title>ipad-页面</title>
		<style>
				body{font-size:5rem;}
		</style>
	</head>
	<body>
		ipad.html 页面
	</body>
	
</html>

android.html页面内容:

<html>
	<head>
		<meta charset="utf-8">
		<title>Android-页面</title>
		<style>
			body{font-size:5rem;}
		</style>
	</head>
	<body>
		Android.html 页面
	</body>
</html>

访问结果:

通过htaccess文件配置实现对apache服务器访问的限制

电脑浏览器、苹果系统浏览器、安卓系统浏览器访问所展现的内容都不一样,而且后面的参数也完整的保留了下来。


3、实现不同访问来源展现不同内容的访问控制

配置内容:

 RewriteEngine On
<IfModule mod_rewrite.c>
 RewriteCond  %{HTTP_REFERER}  ^http://www.a.com.* [NC]
 RewriteRule  (.*)                 a.html?$1  [L]
 RewriteCond  %{HTTP_REFERER}  ^http://www.test.com.* [NC]
 RewriteRule  (.*)                 test.html?$1  [L]
</IfModule>

a.html页面内容:

<html>
	<head>
		<meta charset="utf-8">
		<title>a-页面</title>
		<style>
			body{font-size:2rem;}
		</style>
	</head>
	<body>
		通过 www.a.com 进来
	</body>
	
</html>

test.html页面内容:

<html>
	<head>
		<meta charset="utf-8">
		<title>test-页面</title>
		<style>
			body{font-size:2rem;}
		</style>
	</head>
	<body>
		通过 www.test.com 进来
	</body>
</html>

访问结果:

通过htaccess文件配置实现对apache服务器访问的限制

在 www.a.com/index.html 页面和 www.test.com/index.html 虽然点击的是同一个链接,但看到的内容却不一样,正好实现了不同访问来源的访问控制。

【补充】

如果想实现不允许访问只需修改RewriteRule 

改成:

RewriteRule (.*) - [F]

之后在访问就变成403了。

文章版权及转载声明:

本文由 心月IT技术博客 博主整理于 12-03
若转载请注明原文及出处:https://www.xinyueseo.com/jianzhan/542.html

分享到:
赞(
发表评论
快捷输入:

验证码

    评论列表 (有 0 条评论,人围观)参与讨论