删除 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]
我很确定这是正确的方法,但它不起作用。我正在尝试重写这个
域名.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]