用.htaccess重写不起作用

时间:2015-06-20 20:51:34

标签: regex apache .htaccess mod-rewrite

我试图通过在.htaccess中使用RewriteRule来使URL看起来更好,但它不起作用。

情况就是这样。我有一个根文件夹,其中有一个名为pdf.php的PHP文件。该文件中的脚本将PDF文件发送给用户,该名称作为URL中的变量给出。 PDF文件位于名为pdf的文件夹中,放在根目录中。该文件夹受到保护,因此只能使用脚本获取PDF文件。所有这些都是出于安全原因。

例如,当您转到http://example.com/pdf.php?file=pdf/File.pdf时,可以下载PDF文件,其中pdf / File.pdf是PDF文件的路径。这工作正常。我希望它只是转到http://example.com/pdf/File.pdf时才能工作,因此必须将URL重写为前面提到的URL。

我尝试使用生成器制作RewriteRule,但它不起作用。 以下规则位于文件夹pdf中的.htaccess文件中。将它放在根目录中也不起作用。

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^pdf/([^/]*)$ /pdf.php?file=pdf/$1

文件夹pdf的保护如下。

ErrorDocument 403 http://example.com/
Order deny,allow
Deny from all

1 个答案:

答案 0 :(得分:0)

在root .htaccess中尝试此代码:

[ebuild   R    ] dev-lang/python-3.4.1:3.4::gentoo  USE="gdbm ipv6 ncurses readline ssl threads xml -build -examples -hardened -sqlite -tk -wininst" 0 KiB