在.htaccess中重写子目录的url

时间:2014-01-09 10:24:27

标签: regex wordpress .htaccess subdirectory

我将wordpress文件从root移动到子目录。在wp-content / uploads文件夹中上传了一些文件。直接访问这些文件时,我收到404错误。

我需要通过.htaccess

重写wp-content / uploads的url

我需要的是重定向 http://example.com/wp-content/uploads/2012/09/report.pdfhttp://example.com/wp_sub/wp-content/uploads/2012/09/report.pdf

这就是我试过的

RewriteCond%{HTTP_HOST} ^(www。)?example.com $

RewriteRule ^(。*)$ http://www.example.com/wp_sub/ $ 1 [R = 301,QSA,L]

这会为每个链接添加一个子目录wp_sub。 我需要为wp-content / uploads链接添加一个子目录“wp_sub”。

我错过了什么?

3 个答案:

答案 0 :(得分:2)

让我们看看

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]

答案 1 :(得分:1)

将此规则放在/wp-content/uploads/.htaccess文件中:

RewriteEngine On
RewriteBase /wp-content/uploads/

RewriteRule ^(.*)$ /wp_sub/$1 [L,R]

答案 2 :(得分:0)

您可以使用以下代码:

   RewriteRule ^wp-content/uploads/(.*)$ http://www.example.com/wp_sub/wp-content/uploads/$1 [R=301,L]