php – .htaccess为PDF URL

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

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

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

NC:使用[NC]标志会使RewriteRule以不区分大小写的方式进行匹配.也就是说,它不关心字符在匹配的URI中是否以大写或小写形式出现.

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...