重写 .htaccess 中子目录的 url
Posted
技术标签:
【中文标题】重写 .htaccess 中子目录的 url【英文标题】:Rewrite url for subdirectory in .htaccess 【发布时间】:2014-01-27 20:15:29 【问题描述】:我将 wordpress 文件从根目录移至子目录。 wp-content/uploads 文件夹中上传了一些文件。直接访问这些文件时,出现 404 错误。
我只需要通过 .htaccess 重写 wp-content/uploads 的 url
我需要的是从 http://example.com/wp-content/uploads/2012/09/report.pdf 到 http://example.com/wp_sub/wp-content/uploads/2012/09/report.pdf
这是我尝试过的
RewriteCond %HTTP_HOST ^(www.)?example.com$
重写规则 ^(.*)$ http://www.example.com/wp_sub/$1 [R=301,QSA,L]
这会为每个链接添加一个子目录 wp_sub。 我只需要为 wp-content/uploads 链接添加一个子目录“wp_sub”。
我错过了什么?
【问题讨论】:
【参考方案1】:让我们看看
RewriteRule ^(.*)$ http://www.example.com/wp_sub/$1
意思是:
您将所有内容 (^(.*)$
) 重写为 http://www.example.com/wp_sub/$1
。
好吧,您不想重写所有内容,对吗? :)
所以我们必须限制它只影响wp-content
文件夹:
RewriteRule ^(wp-content/.*)$ http://www.example.com/wp_sub/$1 [R=301,QSA,L]
【讨论】:
【参考方案2】:您可以使用代码:
RewriteRule ^wp-content/uploads/(.*)$ http://www.example.com/wp_sub/wp-content/uploads/$1 [R=301,L]
【讨论】:
【参考方案3】:将此规则放在您的 /wp-content/uploads/.htaccess
文件中:
RewriteEngine On
RewriteBase /wp-content/uploads/
RewriteRule ^(.*)$ /wp_sub/$1 [L,R]
【讨论】:
以上是关于重写 .htaccess 中子目录的 url的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess伪静态(URL重写)绑定域名到子目录实现子站点