我很确定这是正确的方法,但它不起作用。我试图改写这个
domain.com/halloo/wp-content/uploads/image.jpg
到
domain.com/wp-content/uploads/image.jpg
在.htaccess中使用它
RewriteRule ^/halloo/wp-content/(.*)$ /wp-content/$1 [R=301,L]
我无法弄清楚它为什么不起作用。
答案 0 :(得分:1)
htaccess文件中重写规则的正则表达式目标不会以/
开头,这意味着您的规则永远不会匹配(因为永远不会有以/
开头的请求。)
此外,您的规则会将请求/halloo/wp-content/foo
和重定向浏览器转移到/wp-content/foo
。如果您想在内部重写它以便/halloo/wp-content/foo
保留在URL地址栏中,请从标记中删除R=301,
部分。
RewriteRule ^halloo/wp-content/(.*)$ /wp-content/$1 [L]
这意味着您必须在浏览器中请求 domain.com/halloo/wp-content/uploads/image.jpg
。如果你真的想要它反过来,只需交换“从正则表达式”和“到URI”:
RewriteRule ^wp-content/(.*)$ /halloo/wp-content/$1 [L]
编辑:
要从浏览器的地址栏中删除/halloo/
,您需要以下内容:
RewriteCond %{THE_REQUEST} \ /+halloo/wp-content([^ \?]+)
RewriteRule ^ /wp-content$%1 [L,R]