我的问题是我想拒绝对文件夹的访问,但我不能。我.htaccess
在这个文件夹中放了一个文件,只有这些行:
order deny,allow
deny from all
知道会发生什么吗?
我得到它!这是由于apache配置。在我foo.conf
的站点可用目录中,我有:
AllowOverride None
正如 apache doc 所说,AllowOverride 描述:.htaccess 文件中允许的指令类型
当它更改为:
AllowOverride All
它完美无缺!您还可以使用特定选项对其进行配置:
AllowOverride directive-type
指令选项位于:apache.org
我使用这种方法遇到了同样的问题。试试这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} foldername
RewriteCond %{REMOTE_ADDR} !^111\.222\.333\.44$
RewriteRule . - [R=404,L]
使用此方法,您需要添加自己的 ip。
选项:而不是最后一行是未找到的 404 页面:
RewriteRule . - [R=404,L]
您可以将其更改为 403 禁止:
RewriteRule .*? - [F]
或重定向到您的主页:
RewriteRule . http://www.domain.com/ [R,L]
您需要做两件事,首先,更改 apache 的 conf 以允许覆盖,其次,更改主机的 conf 以允许覆盖
第一的
nano /etc/apache2/apache2.conf
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
并将其更改为;
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
第二
cd /etc/apache2/sites-available
nano yourdomain.com.conf
在其中添加以下代码,
<Directory "/var/www/html/yourdomain.com/public_html">
AllowOverride All
Require all granted
</Directory>
添加后
<VirtualHost *:80>
ServerAdmin support@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html/yourdomain.com/public_html/
<Directory "/var/www/html/yourdomain.com/public_html">
AllowOverride All
Require all granted
</Directory>
用这个:
<Directory /folder_name>
Order Deny,Allow
Deny from all
</Directory>
最好添加一条规则以允许您的 IP 地址。您可以为此使用your_ip_address中的允许。请注意 IP 地址,因为它可以共享。您可以使用http://www.whatismyip.com/检查您的 IP 地址