3
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (?!^infos/)^(.+?)/?$ /dl.php?f=$1 [L,QSA,NC]

此 htaccess 用于制作用户友好的下载 URL。

example.com/some_file_to_download.zip 

将重定向到下载页面

example.com/dl.php?f=some_file_to_download.zip

问题是当文件名包含特殊字符时+&它会弄乱 GET 变量dl.php

有问题的 URL 示例:

example.com/file&special+characters 

将重定向到

example.com/dl.php?f=file&special+chracters

所以我们这里有一个问题。

如何在我的 htaccess 文件中转义这些特殊字符?我无法控制原始 URL(在它被重定向到之前dl.php),所以我不能只使用 php 来进行 urlencode。

4

0 回答 0