.htaccess重写模块在Windows下不能在Apache下工作

我试图将请求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文件本身。