.htaccess 这个人造的docroot是不是太薄了?

.htaccess 这个人造的docroot是不是太薄了?,.htaccess,.htaccess,我喜欢将应用程序的PHP文件存储在docroot之上 然而,我的共享主机也存储了很多垃圾。看起来很乱 我想知道怎么做 users/alex/public_html/ - .htaccess - application/ - system/ users/alex/public_html/www/ - index.php - assets/css - assets/js 其中.htaccess文件包含以下内容 RewriteEngine On RewriteRule .* www/$

我喜欢将应用程序的PHP文件存储在docroot之上

然而,我的共享主机也存储了很多垃圾。看起来很乱

我想知道怎么做

users/alex/public_html/
 - .htaccess
 - application/
 - system/

users/alex/public_html/www/
 - index.php
 - assets/css
 - assets/js
其中
.htaccess
文件包含以下内容

RewriteEngine On
RewriteRule .* www/$0
因此,对我的web根目录的所有请求都会被静默地重写到
www/
文件夹中


这太离谱了吗?

我真的不认为有任何真正的风险。从本质上讲,您对web服务器的信任程度与对文档根目录的web访问限制是一样的。但是有两个方面需要考虑。< /P> 首先,根据特定性对.htaccess文件中的mod_重写规则集进行选择性评估。URL为/category/path/且目录结构如下(假设所有.htaccess文件都有mod_rewrite规则集),则只计算path/中的.htaccess文件

public_html/ |- .htaccess |- category/ |- .htaccess |- path/ |- .htaccess /www/.htaccess

RewriteEngine On

RewriteRule .* /www/$0
RewriteEngine On

# Check if the original request was to /www/something and redirect
RewriteCond %{THE_REQUEST} ^[A-Z]+\s/www/
RewriteRule .* /$0 [R=301,L]

# The rest of your rules...

你说的“片状”是什么意思?另外,请注意,如果没有一些附加规则,您的公共内容也可以通过
example.com/www/index.php
等查看。这不是什么大问题,但最好将给定页面限制为一个有效URL。@蒂姆·斯通对不起,我的意思是,我冒了什么风险?@alex很乐意帮忙。我没有测试规则集,因此如果您选择使用它,请告诉我是否存在任何问题。从这里看起来没问题,但大家都知道我时不时会让打字错误溜进来。@Tim Stone我正试图阻止像
/www/assets/css/common.css
这样的东西被访问。然而,我认为规则与之不符。另外,对于上一个重写规则,我将
^
更改为
*
@alex哎呀,你是对的,第二个规则应该有
*
作为测试模式。现在更正了答案。关于阻止
/www/…
,第一个条件/规则对在我的测试服务器上按预期执行重定向到自动更正,你是说你这边什么也没发生?@Tim Stone我想这可能与
/www/
中的
.htaccess
规则有关。我将所有URL映射到
index.php
,这些URL不是文件(
-f
)或目录(
-d
)。@alex Ah,所以您在
/www/
中有mod_重写规则。对不起,我应该先问这个。将示例的上半部分移到.htaccess文件的上半部分,希望能把事情弄清楚。在文档root.htaccess文件中不需要它,因为对
/www/..
的所有请求都将由
/www/
.htaccess专门处理。