Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php .htaccess允许从本地访问,并仅允许从外部访问一个子文件夹_Php_Apache_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

Php .htaccess允许从本地访问,并仅允许从外部访问一个子文件夹

Php .htaccess允许从本地访问,并仅允许从外部访问一个子文件夹,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我试图在我的.htaccess中只允许从本地网络访问所有站点,并允许从外部网络访问一个子文件夹以读取一些php docroot-var/ww/html .htaccess RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.site\.com\:8080$ RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] order deny, allow deny from all allow fro

我试图在我的.htaccess中只允许从本地网络访问所有站点,并允许从外部网络访问一个子文件夹以读取一些php

docroot-var/ww/html

.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.site\.com\:8080$ 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
order deny, allow
deny from all
allow from 172.16.1.*
allow from all
var/www/html/site

.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.site\.com\:8080$ 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
order deny, allow
deny from all
allow from 172.16.1.*
allow from all
var/www/html/site/public

.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.site\.com\:8080$ 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
order deny, allow
deny from all
allow from 172.16.1.*
allow from all
从lan、docroot和所有站点都可以

从外部,docroot正常,但站点和公用文件夹出现“内部服务器错误”

你能帮我解决这个问题吗? 谢谢

ps:对不起,我的英语

您收到了
的“内部服务器错误”
,因为您的
重写条件
错误,并且您的规则不断循环

这种情况就是问题所在:

RewriteCond %{HTTP_HOST} !^www\.site\.com\:8080$
因为
%{HTTP_HOST}
只匹配主机名,而不匹配端口号

你可以这样做:

RewriteCond %{HTTP_HOST} !^www\.site\.com$