我有一个名为/ 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
欢迎来到StackOverFlow,尝试这样:
原文链接:https://www.f2er.com/php/139569.htmlRewriteEngine 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中是否以大写或小写形式出现.
此外,我建议使用破折号而不是下划线.