删除 url 的第一部分

Remove first part of url

我很确定这是正确的方法,但它不起作用。我正在尝试重写这个

域名.com/halloo/wp-content/uploads/image.jpg

域名.com/wp-content/uploads/image.jpg

在 .htaccess 中使用它

RewriteRule ^/halloo/wp-content/(.*)$ /wp-content/ [R=301,L]

我不明白为什么它不起作用。

htaccess 文件中重写规则的正则表达式目标不会以 / 开头,这意味着您的规则永远不会匹配(因为从来没有以 / 开头的请求)。

此外,您的规则接受请求 /halloo/wp-content/foo 并且 将浏览器 重定向到 /wp-content/foo。如果您想在内部重写它以便 /halloo/wp-content/foo 保留在 URL 地址栏中,请从标志中删除 R=301, 部分。

RewriteRule ^halloo/wp-content/(.*)$ /wp-content/ [L]

这意味着您必须在浏览器中请求 domain.com/halloo/wp-content/uploads/image.jpg。如果你真的想要反过来,只需交换 "from regex" 和 "to URI":

RewriteRule ^wp-content/(.*)$ /halloo/wp-content/ [L]

编辑:

要从浏览器的地址栏中删除 /halloo/,您需要这样的东西:

RewriteCond %{THE_REQUEST} \ /+halloo/wp-content([^ \?]+)
RewriteRule ^ /wp-content$%1 [L,R]