删除网址的第一部分

时间:2015-01-20 01:28:52

标签: .htaccess mod-rewrite

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

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]

我无法弄清楚它为什么不起作用。

1 个答案:

答案 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]