具有特定文件夹异常的htaccess

时间:2013-03-21 14:16:30

标签: .htaccess exception mod-rewrite url-rewriting

我已经设置了一个htaccess文件,以便创建一个小的路由结构,其中urls重定向到index.php。我想添加一个例外,如果用户键入“/ 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(此处不使用任何参数)。 Regexp真的不是我的一杯茶,特别是当有多种条件需要考虑时。想法?

编辑:^ admin /([^ /] *)/?解决了它。

1 个答案:

答案 0 :(得分: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]