Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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_.htaccess - Fatal编程技术网

Php Htaccess忽略文件夹

Php Htaccess忽略文件夹,php,.htaccess,Php,.htaccess,我正在尝试为一个站点创建一个管理系统,但是htaccess破坏了它: 管理员部分位于名为admin的文件夹中 我的HTACCESS到far: Options +FollowSymLinks -Indexes RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(admin)$ admin/index.php RewriteRule ^([

我正在尝试为一个站点创建一个管理系统,但是htaccess破坏了它:

管理员部分位于名为
admin
的文件夹中

我的HTACCESS到far:

Options +FollowSymLinks -Indexes

RewriteEngine On

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


RewriteRule ^(admin)$ admin/index.php
RewriteRule ^([\wæøå]+)$ index.php?page=$1 [QSA]
RewriteRule ^([\wæøå]+)/$ index.php?page=$1 [QSA]

RewriteRule ^(nyhed)/([\w\d\-æøå]+)$ index.php?page=$1&nyhed=$2 [QSA]
RewriteRule ^(nyhed)/([\w\d\-æøå]+)/$ index.php?page=$1&nyhed=$2 [QSA]
但不让我进入那个文件夹

所以我在索引中做了一个
if

if($_GET["page"] == "admin"){
    header("location:http://google.com");
}

但这也不会起任何作用,也不会出现任何错误。D:

重写第二行可以按您的方式串在一起,但它们只会影响它们得出的第一条规则

Options +FollowSymLinks -Indexes

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [QSA]
这将把对不存在的目录和文件的所有请求发送到index.php。现有的文件和目录不会受到影响。其他规则是不必要的。

这是您的问题:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
您正在重写名为
admin
的目录,该目录显然存在于您的文件系统中,如Apache所述:

如果此路径不作为目录路径或文件路径存在,请继续重写


这就是为什么它没有完全按照您期望的方式重写。

文件夹名为“if”或“admin”@PugganSe-Oops-sorry。它名为adminits,在测试“RewriteCond%{REQUEST_FILENAME}!-d”时停止,因为“admin”是一个“d”目录,规则是aborted@PugganSe问题是,它不。。。我知道应该这样做,但是
RewriteCond%{REQUEST\u FILENAME}-d
从来没有真正对我有效过,只是使用了它,所以如果有一天我很幸运,它确实有效了:Dso如果你删除那一行,它仍然无效?尝试添加:“RewriteRule^(admintest)$admin/index.php”并转到http://domain/admintestwill,如果不是因为我已经重写了下一个参数D:(更新了我的问题)1-将管理员目录重命名为cms。2-请阅读mod_rewrite,特别是rewrite的文档。Cond:对不起,应该是名为admin,只是一个输入错误