Windows

.htaccess 重寫模組在 Windows 中的 Apache 下不起作用

  • August 1, 2016

我正在嘗試將請求重定向到備份到單個文件的文件夾,該文件夾index.py位於我的 Apache 伺服器的根目錄中。到目前為止,沒有任何工作。這是我的.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>

這仍然讓我喜歡它的 URLwww.example.com/files/testfile.zip並下載。它需要回到index.py. 我已取消註釋mod_rewrite.co. httpd.conf這是在 Windows 中。

這仍然讓我喜歡它的 URLwww.example.com/files/testfile.zip並下載。

您發布的指令明確排除了映射到文件系統上現有文件的 URL。所以是的,您將被允許訪問/files/testfile.zip(物理文件)並下載它。(具體來說,這RewriteRule將只適用於不存在的文件。)

但是,您發布的指令還存在其他問題,這表明它無法正常工作……這個 .htaccess 文件在哪裡?

如果此 .htaccess 文件位於文件根目錄中,那麼它將匹配每個請求,而不僅僅是對子目錄中文件的請求。

如果 .htaccess 文件位於子目錄中,則任何成功的重寫都將重寫到index.py該子目錄中,而不是文件根目錄中。

要將特定子目錄中的所有請求在內部重寫 到文件根目錄中,請在該子目錄中的 .htaccess 文件中嘗試以下操作:index.py

RewriteEngine On
RewriteRule ^ /index.py [L]

**更新:**您需要啟用 .htaccess 文件,如果它們尚未啟用…AllowOverride All應該進入您的伺服器配置(如果您不需要所有東西All,可以稍後替換)。必須進入伺服器配置中的一個部分,或者進入 .htaccess 文件本身。FileInfo``Options +FollowSymLinks``<Directory>

引用自:https://serverfault.com/questions/793045