0

サイトの管理システムを作成しようとしていますが、htaccess によってサイトが台無しになります D:

管理部分は、という名前のフォルダーにありますadmin

遠くへの私のhtaccess:

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 %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

adminApacheが言うように、ファイルシステムに明らかに存在するという名前のディレクトリに書き換えています。

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 に答える
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 に答える