.htaccess:如何仅在访问特定子目录时重定向到PHP脚本?

时间:2016-03-31 22:27:26

标签: .htaccess redirect mod-rewrite

我创建了一个.htaccess文件,将.png QR代码请求重定向到PHP QR代码生成器。

RewriteEngine On
RewriteBase /qr/

RewriteCond %{THE_REQUEST} \ /+([^\?\ ]+)\.png
RewriteRule ^(.*)$ access-code.php?id=%1 [QSA,L]

它适用于原始意图,但也会将每个.png请求发送到同一个脚本。如果在/ qr / access-code / *目录中,我需要将RewriteCond更改为仅接受.png文件。

我将.htaccess文件放在以下目录中:

/qr/.htaccess

符合预期效果的示例请求(不是实际链接):

http://mywebsite.com/qr/access-code/12345678.png

示例请求“有效”,但我不希望它被重定向:

http://mywebsite.com/qr/img/background.png(不是实际链接)

如何调整我的.htaccess条件以使我的规则按预期运行?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

RewriteEngine On
RewriteBase /qr/
##If /document_root/dir/foo.png is an existent file##    
RewriteCond %{DOCUMENT_ROOT}/access-code/$1 -f
##Rewrite /foo.png to access-code.php?id=foo.png
RewriteRule ^(.+\.png)$ access-code.php?id=$1 [QSA,L]