如果 url 包含特殊单词,请重定向到特殊子目录



在.htaccess中看到了很多关于重写的说明,我知道.htaccess中的以下说明会创建一个重定向

RewriteEngine on
RewriteRule ^(.*)foobar(.*)$ http://www.example.com/index.php [L,R=301]

RewriteEngine on
RewriteCond %{REQUEST_URI} foobar
RewriteRule ^ /index.php [L,R]

但我并不真正了解所有/<*的东西。 而且我还没有看到任何说明如何将它们发送到包含原始请求的 url。

基本上,我想重定向任何仅包含/foobar/或/foobar 的网址,而不是如果它是/foobarone/或/testfoobar..

我希望它被重写为 example.com/404/(他们写的路径(

因此,访问example.com/comments/foobar(带或不带结束斜杠(它将被重定向到example.com/404/comments/foobar

这样,它将触发404并记录事件,包括他们尝试访问的路径。

您可以使用此规则作为最顶层规则:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/404/
RewriteRule (?:^|/)foobar(?:/|$) /404%{REQUEST_URI} [L,NC,R=301]

最新更新