【问题标题】:301 redirect regex for file paths to uploads directory301 将文件路径的正则表达式重定向到上传目录
【发布时间】:2014-10-28 05:29:05
【问题描述】:

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

"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"

我在上传文件夹中保持子文件夹相同,所以我真的需要一个正则表达式来指向任何去往的东西

"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

我尝试在 &lt;IfModule mod_rewrite.c&gt; 块中添加来自 anubhava 的答案,但我认为来自 wordpress 的 RewriteBase / 存在问题,我试图添加 RewriteBase /uploads/。 /uploads 目录如何设置重写条件?

【问题讨论】:

    标签: regex wordpress .htaccess mod-rewrite redirect


    【解决方案1】:

    您可以在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
    

    【讨论】:

    • 感谢 Anubhava,我遇到了 wordpress htaccess 已经有 RewriteBase 的问题,所以我更新了我的问题。
    • 其实我建议的htaccess需要放在uploads目录下的htaccess文件中,而不是放在根htaccess文件中。
    • 我相信/uploads/ 是一个真实的目录。以防万一不让我知道。
    • 它本来会在旧网站上,但它不会再存在了。
    • OK 尝试更新规则。我已经为DocumentRoot/.htaccess提供了完整的.htaccess
    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 2019-04-17
    • 2020-10-14
    • 2014-01-22
    • 1970-01-01
    • 2014-11-26
    相关资源
    最近更新 更多