我试图将请求redirect到一个文件夹备份到我的Apache服务器的根目录中的一个文件, index.py 。 到目前为止没有任何工作。 这是我的.htaccess:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #RewriteCond %{HTTP_REFERER} !index\.py RewriteRule . index.py [L] </IfModule>
这仍然让我喂它的url,如www.example.com/files/testfile.zip和下载。 它需要回到index.py 。 我已经取消了httpd.conf mod_rewrite.co注释。 这是在Windows中。
这仍然让我喂它的url,如
www.example.com/files/testfile.zip和下载。
您已经发布的指令明确排除了映射到文件系统上现有文件的URL。 所以是的,你将被允许你访问/files/testfile.zip (一个物理文件)并下载它。 (具体来说, RewriteRule将只适用于不存在的文件。)
但是,您发布的指令还存在其他问题,这表明这种方式无法正常工作。此.htaccess文件位于何处?
如果这个.htaccess文件在文档根目录下,那么它将匹配每个请求,而不仅仅是在子目录中的文件请求。
如果.htaccess文件位于子目录中,则任何成功的重写都将重写为该子目录中的index.py ,而不是文档根目录。
要将特定子目录中的所有请求重新写入文档根目录中的index.py ,请在该子目录中的.htaccess文件中尝试以下操作:
RewriteEngine On RewriteRule ^ /index.py [L]
更新:你将需要启用.htaccess文件,如果他们没有启用… AllowOverride All应该去你的服务器configuration(如果你不需要的一切, All可以用FileInforeplace)。 Options +FollowSymLinks必须放在您的服务器configuration的<Directory>部分,或在.htaccess文件本身。