301重定向正则表达式,用于上传目录的文件路径

时间:2014-09-03 16:07:48

标签: regex wordpress .htaccess mod-rewrite redirect

我正在将一个网站转移到wordpress,该网站有数百个可供下载的文件。当前文件路径可能在文件名之前有许多子文件夹。以下是网址的外观示例。

"http://www.example.com/uploads/folder/subfolder/anothersubfolder/file.pdf"

"http://www.example.com/uploads/folder/file.pdf"

  "http://www.example.com/uploads/folder/subfolder/anothersubfolder/anothersubfolder/file.doc"

我想创建301重定向来处理对这些文件的任何请求,并将它们发送到新的URL,这将是

"http://www.example.com/wp-content/uploads/folder/subfolder"

我在uploads文件夹中保持子文件夹相同,所以我真的需要一个正则表达式来指向任何转到

的内容
"http://www.example.com/uploads/"

并指向

"http://www.example.com/wp-content/uploads/"

更新

我当前的.htaccess文件看起来像

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

我已尝试在<IfModule mod_rewrite.c>区块中添加anubhava的答案,但我认为来自wordpress的RewriteBase /存在问题,我尝试添加RewriteBase /uploads/。如何为/ uploads目录重写条件?

1 个答案:

答案 0 :(得分:3)

您可以在DocumentRoot/.htaccess中使用此重定向规则:

# BEGIN WordPress
<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

RewriteRule ^uploads(.*)$ /wp-content/uploads/$1 [L,NE,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>    
# END WordPress