0

/zp-core/admin.phpリライトをリダイレクトしたいのですadminが、どういうわけか動作させられません。

このルールをhtaccessに追加しました:

RewriteEngine On

RewriteBase /

RewriteRule ^/admin$ /zp-core/admin.php [L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^albums/?(.+/?)?$ $1 [R=301,L] 
...
# Catch-all - everything else gets handled in PHP for compatibility.
RewriteRule ^(.*)/?$                        index.php?album=$1 [L,QSA]

3番目のルールはそれを行う必要がありますが、どういうわけかそうではありません。結局、それはキャッチオールルールにフォールバックします

4

1 に答える 1

1

「 ABに書き換える」と言うとき、通常、「A」はユーザーが入力するものであり、「B」はユーザーに取得させたい場所です。

A =' /admin'およびB=' /zp-core/admin.php'の場合、最初のルールは問題ありません。他のルールを削除すると、機能します。

問題は、apacheがサブリクエストを含むすべてのリクエストで.htaccessを調べ、リダイレクトがサブリクエストを実行することです...したがって、最初のルールとは一致しなくなりますが、キャッチオールルールが適用されます。再び一致します(そのようなリクエストでindex.phpを押すと一致する$_GET["album"]ことがわかります。/zp-core/admin.php

あなたがする必要がRewriteCondあるのは、URIがないか/zp-core/admin.php、サブリクエストにないかをチェックすることを追加することです...

また:

RewriteCond %{REQUEST_URI} !^/zp-core/admin.php$

また:

RewriteCond %{IS_SUBREQ} !=true
于 2012-08-13T13:13:39.140 に答える