Apache htaccess密码保护和mod重写?
我不知道怎样才能解决下面的问题。 在我的服务器的根目录上有一个名为upload.php的文件 我希望能够在我的URL中添加一个“/upload”(不带.php),浏览器应该要求输入密码(可能的话还需要用户名)。我输入了正确的密码(和用户名)。应该打开upload.phpApache htaccess密码保护和mod重写?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我不知道怎样才能解决下面的问题。 在我的服务器的根目录上有一个名为upload.php的文件 我希望能够在我的URL中添加一个“/upload”(不带.php),浏览器应该要求输入密码(可能的话还需要用户名)。我输入了正确的密码(和用户名)。应该打开upload.php 这在htaccess中可能吗?是的,这两个问题都是截然不同的 首先:删除.php扩展名 这主要有两种方法 启用内容协商。这将允许您引用其他没有扩展名的资源,甚至有几个名称相似但扩展名不同的文件,并允许Apache根据浏览器的喜
这在htaccess中可能吗?是的,这两个问题都是截然不同的 首先:删除.php扩展名 这主要有两种方法
- 启用内容协商。这将允许您引用其他没有扩展名的资源,甚至有几个名称相似但扩展名不同的文件,并允许Apache根据浏览器的喜好选择最佳文件。请参阅链接。如果允许覆盖此选项,则可以在http.conf或.htaccess中的块中使用
启用它Options+MultiViews
- 使用mod_重写。专门针对您的案例的规则可以是
。这也可以放在http.conf或.htaccess(如果激活)中的块中。您需要启用mod_rewrite和启用了RewriteRule^upload$upload.php
RewriteEngine的重写引擎
- 对于Apache,请参阅文档
- 对于PHP,使用基本身份验证(请注意,密码将以明文形式发送到服务器,除非您使用https,否则可能会有人监视您的流量),您可以执行以下操作:
+详情请参阅。但不要使用基本身份验证;改为使用摘要访问身份验证。
function send401() {
$realm = "Credentials for upload";
header('WWW-Authenticate: Basic realm="'.$realm.'"');
header('HTTP/1.1 401 Unauthorized');
die();
}
function verify_credentials($user, $password) {
//check user and password here. Return true or false
return true;
}
if (!array_key_exists('PHP_AUTH_USER',$_SERVER) ||
!array_key_exists('PHP_AUTH_PW',$_SERVER)) {
send401();
}
elseif (!verify_credentials($_SERVER['PHP_AUTH_USER'],
$_SERVER['PHP_AUTH_PW']))
send401();
//if it gets here, the user was successfully authenticated