省略目录时重定向


Redirect while omiting a directory

我已经搜索过了,但认为我的特定问题没有得到回答。

我有下面的代码,它可以作为index.php重定向到我的主url,并允许一些场景

RewriteCond %{THE_REQUEST} ^.*/index'.php
RewriteRule ^(.*)index'.(php|html?)$ /$1 [R=301,NC,L]

然而,问题是我的管理登录也在index.php url上,这意味着当上面的代码处于活动状态时,它将无法工作。我的管理员是/admin。因此,我想知道是否有一种方法可以调整上面显示的代码,以省略其在管理目录上的行为,从而使登录继续工作。

或者有没有更好的方法可以同时考虑以上两种情况。

您可以通过预先设置以下条件来排除管理文件夹:

RewriteCond %{REQUEST_URI}  !^admin/

如果我正确理解您的场景,那么您希望重定向除/admin/文件夹中的index.php之外的任何index.php,因为这些规则应该足够:

RewriteCond %{REQUEST_URI}  !^admin/
RewriteRule ^(.*)index'.(php|html?)$ /$1 [R=301,NC,L]