1

htaccessファイルに小さな書き換えルールのセットを設定しています。ここでは、admin.phpにリダイレクトする/ adminを除いて、すべてのURLをindex.phpファイルに移動します。残念ながら、mod_rewriteや正規表現にはあまり詳しくありません。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^admin$ admin.php [L]
    RewriteRule . /index.php [L]
</IfModule>

これにより、内部サーバーエラーが発生します(500とは言えません)。管理者の書き換えを削除またはコメント解除すると、機能します。

4

1 に答える 1

1

条件をindex.php書き換えルールに適用する必要があります。そうしないと、リダイレクトループが発生します。RewriteCond直後にのみ適用されるためRewriteRule、すべてをインデックスにルーティングするルールには条件がありません。行を並べ替えてみてください。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^admin$ admin.php [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
于 2013-03-03T23:59:46.483 に答える