php PDF URL的.htaccess

92dk7w1h  于 2023-11-16  发布在  PHP
关注(0)|答案(1)|浏览(118)

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

z18hc3ub

z18hc3ub1#

试试这个:

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中的break命令。使用此标志表示应立即应用当前规则,而不考虑进一步的规则。
**QSA:**当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有的查询字符串,并将其替换为新生成的查询字符串。使用[QSA]标志会导致合并查询字符串。
**NC:**使用[NC]标志会导致RewriteRule以不区分大小写的方式进行匹配。也就是说,它不关心匹配的URI中字母是大写还是小写。

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

相关问题