HTaccess在php重写和文件上存在冲突


HTaccess conflict with each other on php rewrite and file

我的文件夹中有这个原始.htaccess

/subfolder/offer/dl

AddType application/octet-stream .txt

其目的是在点击任何.txt扩展名(如)时强制直接下载txt文件

http://example.com/subfolder/offer/dl/1.txt 

上面的url将下载txt文件,而不是在浏览器中显示。

然后最近在文件夹提供,我添加了以下。htaccess

RewriteEngine On
RewriteBase /subfolder/offer/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ index.php?action=$1 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?action=$1&action_id=$2 [L,QSA]

现在由于这个.htaccess,我上面的.htaccessfor/dl文件夹不起作用,它不会下载或链接到文件

我应该改变什么才能使两者都起作用。

您可以添加一条规则来忽略/dl/文件夹中的所有请求:

RewriteEngine On
RewriteBase /subfolder/offer/
RewriteCond %{REQUEST_URI} /dl/ [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/?$ index.php?action=$1 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?action=$1&action_id=$2 [L,QSA]