在.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]