php - .htaccess 表示 PDF URL

标签 php apache .htaccess mod-rewrite lamp

我有一个名为 /pdf/ 的结构,用于存储生成的 PDF。我正在尝试使用 .htaccess 将访问者路由到 PDF 文件夹。

我的 .htaccess 文件中有此规则:

RewriteEngine On
RewriteBase /
RewriteRule (.*) index.php?page=$1.html
RewriteRule ??? for pdf??

(注意 ??? 标记...)

当我尝试访问 url /manual_chap_1 时,它正在工作。但是当我尝试 /pdf/manual_chap_1 时,它似乎不起作用。这是我看到的一些输出:

$_GET[page] => index.php.html

如果请求的位置不存在 PDF 文件,我希望能够生成 PDF 文件,然后,我希望它加载 HTML 页面。

最佳答案

欢迎来到 StackOverFlow,试试这个:

RewriteEngine On
RewriteBase /

RewriteRule ^pdf/([a-z0-9\-_\.]+)$ pdf.php?file=$1 [L,NC,QSA]

RewriteCond %{REQUEST_URI} !^/pdf
RewriteRule ^([a-z0-9\-_\.]+)/?$ index.php?page=$1.html [L,NC,QSA]

L: [L] 标志导致 mod_rewrite 停止处理规则集。在大多数情况下,这意味着如果规则匹配,则不会处理更多规则。这对应于 Perl 中的最后一个命令,或 C 中的中断命令。使用此标志指示应立即应用当前规则,而不考虑进一步的规则。

QSA:当替换 URI 包含查询字符串时,RewriteRule 的默认行为是丢弃现有查询字符串,并将其替换为新生成的查询字符串。使用 [QSA] 标志会导致查询字符串被组合。

NC:使用 [NC] 标志会导致 RewriteRule 以不区分大小写的方式进行匹配。也就是说,它不关心匹配的 URI 中字母是大写还是小写。

此外,我建议使用破折号而不是下划线。

关于php - .htaccess 表示 PDF URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9105276/

相关文章:

php - 在 Linux 服务器中更改文件上传大小

javascript - 只允许在特定时间访问网站?

php - 什么是编写此函数的更好方法。它获取一个远程文件并将其复制到本地,在 php 中

centos下的php.ini配置项

Netbeans 中的 PHP : Is there shortcut to generate the <? php ?> 标签

java - 无法使用 Apache 从 Android 向 Django Web 服务器发出 http 请求

php - 301重定向错误动态和静态index.php?

PHP:重新加载时重置 session 生命周期

ruby-on-rails - apache2 和 mysqldump 导致大量负载平均峰值

apache - 为什么页面没有完全加载?