1

我设置了一个 htaccess 文件以创建一个小型路由结构,其中 url 重定向到 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(此处不使用任何参数)。正则表达式真的不是我的一杯茶,尤其是当有多个条件需要考虑时。想法?

编辑:^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 回答