.htaccess用于PDF URL

Mag*_*gie 12 php apache .htaccess mod-rewrite lamp

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

我在.htaccess文件中有这个规则:

RewriteEngine On
RewriteBase /
RewriteRule (.*) index.php?page=$1.html
RewriteRule ??? for pdf??
Run Code Online (Sandbox Code Playgroud)

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

当我尝试访问该URL时,/manual_chap_1它正在工作.但是当我尝试/pdf/manual_chap_1它似乎并没有起作用.这是我看到的一些输出:

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

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

Boo*_*eus 11

欢迎来到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]
Run Code Online (Sandbox Code Playgroud)

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

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

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

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