Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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 Mod Rewrite show私有文件访问被拒绝_Php_.htaccess_Mod Rewrite_Url Rewriting_Symlink - Fatal编程技术网

Php Mod Rewrite show私有文件访问被拒绝

Php Mod Rewrite show私有文件访问被拒绝,php,.htaccess,mod-rewrite,url-rewriting,symlink,Php,.htaccess,Mod Rewrite,Url Rewriting,Symlink,我有以下修改重写规则: RewriteCond %{DOCUMENT_ROOT}/../application/%{REQUEST_URI} -f RewriteRule ([\w]+\/www\/(.*)) %{DOCUMENT_ROOT}/../../application/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ ./index.php/$1 我的服务器目录布局如下所示: /application --/

我有以下修改重写规则:

RewriteCond %{DOCUMENT_ROOT}/../application/%{REQUEST_URI} -f
RewriteRule ([\w]+\/www\/(.*)) %{DOCUMENT_ROOT}/../../application/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php/$1
我的服务器目录布局如下所示:

/application
--/example
----/www
------/test.jpg
/www <- public root
--/.htaccess
--/index.php

我用不同的方法解决了这个问题。我将整个应用程序目录移到了www目录中,现在我使用这个HT-ACCESS文件只加载\w/www/*目录中的文件

RewriteCond %{REQUEST_URI} ^/[\w]+/www/(.*)$
RewriteCond %{DOCUMENT_ROOT}/applications/%{REQUEST_URI} -f
RewriteRule ([\w]+\/www\/(.*)) /applications/$1 [L]

RewriteCond %{REQUEST_URI} !^/index.php/.*
RewriteRule ^(.*)$ ./index.php/$1
RewriteCond %{REQUEST_URI} ^/[\w]+/www/(.*)$
RewriteCond %{DOCUMENT_ROOT}/applications/%{REQUEST_URI} -f
RewriteRule ([\w]+\/www\/(.*)) /applications/$1 [L]

RewriteCond %{REQUEST_URI} !^/index.php/.*
RewriteRule ^(.*)$ ./index.php/$1

我用不同的方法解决了这个问题。我将整个应用程序目录移到了www目录中,现在我使用这个HT-ACCESS文件只加载\w/www/*目录中的文件

RewriteCond %{REQUEST_URI} ^/[\w]+/www/(.*)$
RewriteCond %{DOCUMENT_ROOT}/applications/%{REQUEST_URI} -f
RewriteRule ([\w]+\/www\/(.*)) /applications/$1 [L]

RewriteCond %{REQUEST_URI} !^/index.php/.*
RewriteRule ^(.*)$ ./index.php/$1
RewriteCond %{REQUEST_URI} ^/[\w]+/www/(.*)$
RewriteCond %{DOCUMENT_ROOT}/applications/%{REQUEST_URI} -f
RewriteRule ([\w]+\/www\/(.*)) /applications/$1 [L]

RewriteCond %{REQUEST_URI} !^/index.php/.*
RewriteRule ^(.*)$ ./index.php/$1

为什么要将应该通过HTTP提供的资源放在文档根目录之外?在我的框架中,可以有许多“应用程序”,每个应用程序中都有MVC文件和其他php文件,还有一个“www”文件夹,其中存储了所有资产。其思想是,应用程序只需拖放,其余部分由框架负责。出于安全原因,框架文件和应用程序文件不是公共的,但我希望“www”文件夹可以公开访问。我想说,定义一个
别名将是当时应该做的事情–但请注意,这只可能在服务器配置中实现,不是通过.htaccess-一旦有人从互联网上下载了任何文件,你应该假设它是公共的。。。无论是流式、链接式还是嵌入式。我意识到这一点,但我只希望应用程序www文件夹中的资产是公共的。为什么要将应通过HTTP提供的资源放在文档根目录之外?在我的框架中,可以有许多“应用程序”在每个应用程序中都有MVC文件和其他php文件以及一个“www”文件夹,其中存储了所有资产。其思想是,应用程序只需拖放,其余部分由框架负责。出于安全原因,框架文件和应用程序文件不是公共的,但我希望“www”文件夹可以公开访问。我想说,定义一个
别名将是当时应该做的事情–但请注意,这只可能在服务器配置中实现,不是通过.htaccess-一旦有人从互联网上下载了任何文件,你应该假设它是公共的。。。无论是流式、链接式还是嵌入式。我意识到这一点,但我只希望应用程序www文件夹中的资产公开。我不能在两天前接受我自己的答案,但我明白你的意思。我不能在两天前接受我自己的答案,但我明白你的意思