【问题标题】:How to redirect a WordPress request for an upload to an external URL?如何将 WordPress 上传请求重定向到外部 URL?
【发布时间】:2016-10-07 06:35:16
【问题描述】:

我有一个指向上传到我网站的 PDF 的链接。我希望将人们发送到 YouTube 视频,而不是提供 PDF(不再存在,顺便说一句)。我在 .htaccess 文件中尝试过这样的事情:

RewriteEngine On
RewriteRule "Case-Study\.pdf$" "https://www.youtube.com/watch?v=dQw4w9WgXcQ" [R=301,L]

这在 URL 为 https://example.com/Case-Study.pdf 时有效,但在它为 https://example.com/wp-content/uploads/2016/09/Case-Study.pdf 时无效。后者当然是需要重定向的 URL。

.htaccess 文件的其余部分如下所示:

# BEGIN GD-SSL
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteRule "Case-Study\.pdf$" "https://www.youtube.com/watch?v=dQw4w9WgXcQ" [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_USER_AGENT} ^(.+)$
RewriteCond %{SERVER_NAME} ^example\.com$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# Header add Strict-Transport-Security "max-age=300"
</IfModule>
# END GD-SSL
RewriteEngine on
RewriteRule ^/contact$ https://example.com/#contact [R=301,L]

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

php_value post_max_size          128M
php_value upload_max_filesize     64M
# END WordPress

那么,为什么我的 RewriteRule 不起作用? (感谢您的帮助。)

【问题讨论】:

  • .htaccess 在根目录中。但是我可以很容易地在上传目录中添加一个。
  • @anubhava 试过了,还是 404。
  • @anubhava 插件如何绕过.htaccess? .htaccess 将在将请求传递给 PHP 之前由 Apache 处理,不是吗?
  • 好的,一位同事想通了:因为目标文件不再存在(已重命名),Apache 没有运行 mod_rewrite 就返回了 404。显然,这可以在 Apache 中配置(不确定如何配置),并且可以解释为什么我让它在本地工作,但无法在生产服务器上通过它。感谢您的帮助。
  • Apache 配置问题与 MultiViews 和 mod_negotiate 有关。见systemcodegeeks.com/web-servers/apache/…。

标签: wordpress .htaccess redirect mod-rewrite


【解决方案1】:

原来 mod-rewrite 可以被另一个模块颠覆:mod_negotiation。如果您使用协商的 MultiViews 选项,它可以在进入 mod_rewrite 之前为丢失的文件返回 404。

因此,上面的 RewriteRule 可以与存在的文件一起使用;或使用不存在但在未启用 MultiViews 的服务器上的文件。

在这里更全面地解释:https://www.systemcodegeeks.com/web-servers/apache/apache-multiviews-mod_rewrite/

【讨论】:

    猜你喜欢
    • 2021-09-09
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-18
    相关资源
    最近更新 更多