我有一个名为 /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/