我已经设置了一个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 /([^ /] *)/?解决了它。
答案 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]