0

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

管理部分位于名为admin.

我的 htacces 很远:

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:

4

2 回答 2

0

RewriteCond 行可以在你拥有它们时串在一起,但它们只会影响它们得出的第一条规则。

Options +FollowSymLinks -Indexes

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [QSA]

这会将所有对不存在的目录和文件的请求发送到 index.php。存在的文件和目录不会受到影响。其他规则是不必要的。

于 2012-06-27T15:02:59.100 回答
0

这是你的问题:

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

您正在重写一个名为的目录,该目录admin显然存在于您的文件系统中,如 Apache 所说:

if this path does not exist as a directory path or as a file path continue with the rewrites

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

于 2012-06-27T15:25:47.783 回答