1

URL が index.php にリダイレクトされる小さなルーティング構造を作成するために、htaccess ファイルをセットアップしました。ユーザーが「/admin」以降を入力すると、URL が代わりに admin.php にリダイレクトされるという例外を追加したいと考えています。

htaccess -

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

例: http://mysite.com/admin/settings/は admin.php?page=settings につながるはずですが、http ://mysite.com/about/は index.php につながるはずです (ここではパラメーターを使用しません)。正規表現は、特に考慮すべき条件が複数ある場合は、私の好みではありません。アイデア?

編集: ^admin/([^/]*)/? それを解決しました。

4

1 に答える 1

1

ルート ディレクトリの .htaccess ファイルでこれを試すことができます。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}   !admin\.php    [NC]
RewriteRule ^admin/([^/]*)/? /admin.php?page=$1  [NC,L]

RewriteCond %{REQUEST_URI}  !/admin/        [NC]
RewriteRule .*              /index.php      [NC,L]

永続的なリダイレクトの場合、[NC],L] を [R=301,NC,L] に置き換えます。

于 2013-03-21T14:29:50.937 に答える