是否有一种方法使用php或htaccess来防止访问url的某个部分
Is there a way using php or htaccess to prevent access to a certain part of an url
例如,用户不能访问http://example.com/here,但可以访问添加了more的任何内容。例如http://example.com/her?action=blah blah。
这样做的目的是防止通过直接访问页面来访问文件,但是允许文件在添加了更多操作/链接的情况下使用。
我只想感谢大家的快速反应。根据我得到的答案,我使用php,它工作。
我使用了以下语句:
function access_granted(){
global $pagenow;
if(!isset($_GET['action']) && 'wp-login.php' == $pagenow ) {
wp_redirect('http://example.com/');
exit();
}
}
但是我有一个问题。我把wp-login.php的url改为http://example.com/here,而不是http://example.com/wp-login.php。
我的问题是,现在,函数access_granting不再工作了。我猜是$pagenow
有什么建议,比如如何检查url/这里而不是wp-login.php?
如果你想使用。htaccess方式,就这样做。通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在DOCUMENT_ROOT
目录下的.htaccess
中:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^here/?$ - [NC,L,F]
这将抛出/here
或/here/
的禁止错误,但将允许/here?bar=foo
类型的uri
是的,有。你不需要处理htaccess,你可以用php。首先,您需要检查是否设置了必需的选项。例如,如果您有一个名称为action
的GET
属性,您可以检查它是否使用isset
函数设置。您还需要指定一个自定义HTTP 403页面,并将用户重定向到该页面。下面是一个示例,如果action
未定义,则显示禁止错误:
<?php
if (!isset($_GET['action'])) {
header('HTTP/1.0 403 Forbidden',403);
header('Location: 403.html');
exit;
}
?>
你可能也会发现下面的链接很有用:如何在PHP中显示Apache's默认的404页面
example.com/here是由PHP脚本处理?如果是这样,在脚本开始时进行输入验证,如果不符合要求,则给出错误页面或重定向(http://php.net/manual/en/function.http-redirect.php)到另一个页面。
如果/here是由PHP处理的,那么如果你想让它在URL中添加任何内容时工作,你可以使用这个:
<?php
if(!$_GET){
die('You are not allowed to access this URL.');
}
else {
... PHP code that will execute in case the user is allowed to access the URL(you can also use HTML by just having ?> here instead and add <?php } ?> at the end of the document) ...
}
?>
希望有帮助。
当然,您可以使用PHP。在here.php中,您需要在代码的顶部添加一行(在您的示例中),如下所示:
if(!isset($_GET['action']){
header('location:/notallowed.php');
exit;
}
其中notallowed.php是当他们没有完整链接时你想显示的任何内容
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 通过javascript/html访问twitter共享iframe
- Dojo:访问dijit.form.Select中单击的项目
- 为什么在这个网站上不能通过JS访问元素
- 使用htaccess限制访问,但允许从网页访问
- 通过 https 请求访问和读取 html/php 页面,由 htaccess apache2 Server 后面的 Q
- 是否有一种方法使用php或htaccess来防止访问url的某个部分
- .htaccess拒绝所有除了允许javascript访问