将所有URL重定向到一个文件,指向某个目录的URL除外



我正在尝试将所有URL重定向到index.php,所以这个URL:

domain.com/home/stats

将指向:

domain.com/index.php

相反。

然而,我不想要指向"公共"目录的URL,比如:

domain.com/public/images

重定向到index.php.

我在这个网站上尝试了很多不同的重写,但到目前为止没有一个能100%工作。他们都只是将每个URL重定向到index.php,即使你试图访问公共目录。

这是我现在拥有的:

RewriteRule !^/public/.*$ index.php

我对RegEx知之甚少,但据我所知,使用"!"字符的意思是"除此之外"。但显然,在这种情况下,情况并非如此。

您可以尝试以下操作:

RewriteBase /
RewriteRule ^(public/.*) $1 [L]
RewriteRule ^index.php$ index.php [L]
RewriteRule ^(.*) index.php

第二行是让URI保持原样。第三行是避免在无限循环中捕获index.php。第一和第二ReWriteRule应该在它们被处理之后立即停止([L])。最后一个适用于其他一切。

最新更新