【问题标题】:Remove .pdf file extension from URL using .htaccess使用 .htaccess 从 URL 中删除 .pdf 文件扩展名
【发布时间】:2015-03-10 05:12:44
【问题描述】:

我的服务器上有一个 PDF 文件,我希望在通过浏览器访问时删除扩展名。

我在 .htaccess 上添加了一个重定向,例如:

Rediect permenent /somedestination http://example.com/somefile.pdf

我尝试了许多重定向规则,但所有这些都是为了隐藏 .html、.php 等扩展名,但我无法删除 PDF 扩展名。

我是这个 .htaccess 脚本的新手,因此非常感谢任何帮助

【问题讨论】:

  • 隐藏.pdf扩展的目的是什么?

标签: apache .htaccess pdf mod-rewrite


【解决方案1】:

“删除”html、php 或任何其他扩展名的重写规则看起来相同,只是您只需将“html”或其他任何内容替换为“pdf”。

比如看这个问题:remove .html extension from url

按照这些步骤,遵循这些规则,将“html”替换为“pdf”:

## hide .pdf extension
# To externally redirect /dir/file.pdf to /dir/file
RewriteCond %{THE_REQUEST} \s/+(.+?)\.pdf[\s?] [NC]
RewriteRule ^ /%1 [R=302,L,NE]

# To internally forward /dir/file to /dir/file.pdf
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.pdf -f [NC]
RewriteRule ^(.+?)/?$ /$1.pdf [L]

【讨论】:

    【解决方案2】:

    有人随时纠正我,但我认为这实际上是不可能的。在浏览器中打开 PDF 与提供图像非常相似。您的浏览器正在直接打开并解释该文件。

    话虽如此,我可以想到例外。 Imgur 可以提供动画 .gif 图像,但 URL 将显示为 .jpg,因此可能仍有一些方法可以屏蔽它。

    一种可能的替代方法是在您为其生成名称的单独页面上找到显示 PDF 的内容。 'hack-y' 方法可能是尝试使用 iframe?但是可能有你可以使用的 js 插件或类似的东西。

    【讨论】:

    • 这当然是可能的。 URL 上的文件扩展名实际上并不向浏览器指示文件类型(不要将 URL 上的文件扩展名与所提供的底层文件的文件扩展名混淆)。
    猜你喜欢
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多