2015-01-19 1 views
1

Я хотел бы переименовать запрошенный файл с помощью GET param.Переименовать вложение файла в htaccess

Так что, когда я называю: (...) средства массовой информации/модель/admin_test/1/имя файла образом = blabla.png

Необходимо установить имя запрашиваемого файла в "blabla.png"

Я попытался это один:

SetEnvIf Query_String "\?filename=(.+)$" FILENAME=$1 
Header set Content-Type application/octet-stream 
Header set Content-Disposition "attachment; filename=%{FILENAME}e" 
UnsetEnv FILENAME 

Но я получаю (нуль) в качестве имени. Любые предложения?

+0

[? Есть ли 'SetEnvIf' поддержка ** query_string **] (http://httpd.apache.org/docs/2.4/mod/ mod_setenvif.html # setenvif) – anubhava

+0

Вы правы. http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html не поддерживает Query_String. Я нашел его где-то и использовал его, не проверяя. Но есть ли у вас какая-либо другая идея получить требуемый результат? – l00k

ответ

1

Вы можете попробовать mod_rewrite правила в корневой .htaccess:

RewriteEngine On 

RewriteCond %{QUERY_STRING} (?:^|&)filename=([^&]+) [NC] 
RewriteRule^- [E=FILENAME:%1] 

Header set Content-Type application/octet-stream 
Header set Content-Disposition "attachment; filename=%{FILENAME}e" 
+1

Блестящий. Работайте как шарм. – l00k

+0

Добро пожаловать, рад, что это сработало. – anubhava

 Смежные вопросы

  • Нет связанных вопросов^_^