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
.htaccess阻止url中的文件夹名称重定向_.htaccess - Fatal编程技术网

.htaccess阻止url中的文件夹名称重定向

.htaccess阻止url中的文件夹名称重定向,.htaccess,.htaccess,我在根目录中有一些文件夹,里面有一个.htaccess文件,可以拒绝任何访问(deny from all)。我在root中的htaccess是: RewriteEngine On Options -Indexes RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+)$ index.php?url

我在根目录中有一些文件夹,里面有一个.htaccess文件,可以拒绝任何访问(
deny from all
)。我在root中的htaccess是:

RewriteEngine On

Options -Indexes

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
除了在url中获得文件夹名称外,它工作正常。我想忽略文件夹名称,只是将任何url重定向到index.php?url。
有人能帮忙吗?

代码-d,
-f
-l
条件意味着仅当访问url未解析为现有文件、目录或链接时才应用重写规则。因此,如果目录存在,它将不应用该规则。你需要移除这些。然后需要防止index.php递归重写为自身,如下所示:

RewriteRule ^index.php$ - [L] 
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 
您可能还希望将上一条规则中的
+
更改为
*
,以匹配空url


实际上,内部的
.htaccess
文件似乎首先被解析,然后才是
重写引擎。因此,您需要删除那些
.htaccess
,并依赖重写规则。

不起作用。文件夹中的htaccess文件如何?“不工作”不是有价值的信息。文件夹中的htaccess文件呢?你的问题没有提到他们。那么,他们呢?我不知道,你知道吗?我说过我在根目录中有一些文件夹,里面有一个.htaccess(A)文件。。。(你读过吗?)。由于.htaccess(A)文件,它无法工作。1)您是如何更改以前的内容的2)它究竟是如何无法工作的?我已删除了这些条件,并在根htaccess中使用了您的代码。htaccess(A)位于正在阻止的子文件夹中。