
我有一个像这样的链接的网站:
http://www.example.com/index.PHP?ID=1
http://www.example.com/index.PHP?ID=3
等等
将URL中的4位数字replace为文本+ 4位数字
如何通过.htaccess在URL中允许三个可选参数?
从url代码的任何位置移除任何一个或多个空参数时出错
漂亮的url在yii2中不起作用
.htaccess在根目录下的mod_rewrite,但需要它跳过所有其他目录
我想有一个特定的ID,例如200的htaccess密码保护。
我怎样才能做到这一点?
我如何使mod_rewrite抑制处理更多的规则?
用PHP模拟文件结构
国防部重写假的子域名?
在.htaccess中需要一个特定的URL RewriteRule
在父目录中由htaccess引起的“RewriteEngine不允许在这里”
这不是直接的,但这是一个可以在.htaccess完成的方法:
RewriteEngine On # set URI to /index.PHP/200 if @R_502_5962@ string is ID=200 RewriteCond %{@R_502_5962@_STRING} (?:^|&)ID=(200|1)(?:&|$) [NC] RewriteRule ^(index.PHP)/?$ $1/%1 [NC] # set SECURED var to 1 if URI is /index.PHP/200 SetEnvIfNoCase Request_URI "^/index.PHP/(200|1)" SECURED # enforce auth if SECURED=1 AuthType Basic Authname "Login required" AuthUserfile /full/path/to/passwords Require valID-user Order allow,deny Allow from all Deny from env=SECURED Satisfy any
你不能使用htaccess来做到这一点。 有一种方法需要基于环境变量的授权,但是你不能使用SetEnvIf来匹配查询字符串,并且mod_rewrite的RewriteCond发生在auth模块之后,所以即使你匹配它,auth也已经被绕过了。
你需要在你的index.PHP实现这个。 在PHP 中有一些插件可以为你做一些这样的事情 。 所以像这样:
if($_GET['ID'] == "200") { if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header('http/1.0 401 Unauthorized'); echo 'Text to send if user hits Cancel button'; exit; } else { // check username/password here } }
总结以上是内存溢出为你收集整理的使用基于查询string参数的HTTP身份validation保护URL全部内容,希望文章能够帮你解决使用基于查询string参数的HTTP身份validation保护URL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)