我正在将一个网站转移到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目录重写条件?
答案 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