.htaccess用于PDF URL

12

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

1个回答

11

试试这个:

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中的last命令或C中的break命令。使用此标志可以指示立即应用当前规则,而不考虑其他规则。 QSA: 当替换的URI包含查询字符串时,RewriteRule的默认行为是丢弃现有的查询字符串,并用新生成的查询字符串替换它。使用[QSA]标志可以将查询字符串合并。 NC: 使用[NC]标志可以使RewriteRule在匹配URI时不区分大小写。也就是说,它不关心匹配的URI中的字母是大写还是小写。 另外,我建议使用破折号而不是下划线。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接