1

私は2つのフォルダを持っています:

/forum/admin
/forum/adminhide

/adminのindex.phpを除くすべてを/adminhideに内部的に書き換える.htaccessファイルをフォーラムフォルダーに入れたいと思います。

例:

http://website.com/forum/admin/index.php -> don't do anything
http://website.com/forum/admin/image.png -> internal rewrite to http://website.com/forum/adminhide/image.png

これまでの私の試みはすべて、サーバー内部エラーのみを生成しました。

4

1 に答える 1

1

これはうまくいくかもしれません (ルートレベルの .htaccess ファイルで):

RewriteRule ^forum/admin/index\.php$ - [S=1]
RewriteRule ^forum/admin/(.*) forum/adminhide/$1

最初のルールに一致する URL は書き換えられません (置換にはマジック値があるため)。最初のルールが一致する場合-[S=1]フラグにより​​次のルール (実際の書き換えを行う) がスキップされます。

これは要件を文字通りに解釈することに注意してください。 で始まるすべてのforum/admin/URL パスは、forum/admin/index.php. 次のように、最初のルールを少し緩いものに変更することをお勧めします。

RewriteRule ^forum/admin/(index\.php(/.*)?)?$ - [S=1]

forum/admin/これは、URL パスとにも一致します (したがって、書き換えから除外されます) forum/admin/index.php/whatever


編集:これの .htaccess ファイルをフォルダーに配置する場合は、ルールからforumイニシャルを削除し、代わりに適切に設定します。forum/RewriteBase

RewriteBase /forum/

RewriteRule ^admin/index\.php$ - [S=1]
RewriteRule ^admin/(.*) adminhide/$1
于 2012-12-30T12:04:12.067 に答える