Я хочу, чтобы все mp3-файлы, находящиеся на моем сервере, добавлялись в конце имени файла «-xxx», когда пользователь загружает их. Пример:

файл на сервере: file.mp3

когда пользователь скачивает: file-xxx.mp3

Я гуглил кое-что, что довольно близко к тому, что я хочу:

https://forums.digitalpoint.com/threads/htaccess-rename-mp3.128317/

Поскольку я не хочу ограничиваться какой-либо конкретной папкой и хотел бы, чтобы все .mp3 переименовывались на лету, я попробовал это:

RewriteEngine on
RewriteBase /
RewriteRule ([^.]+)-by-domain\.mp3$ $1.mp3 [L]

но по какой-то причине я не могу заставить его работать, файлы не переименовываются.

Любая помощь будет оценена. Спасибо!

1 ответ1

0

Следующее работало при тестировании на моем сервере

RewriteEngine on
RewriteBase /
RewriteRule ^/(.*)-([0-9]+).mp3 /$1.mp3

Это работает следующим образом - RewriteRule разбит на 4 части,

  1. префикс, включающий путь и первую часть имени файла
  2. "-"
  3. числа в файле
  4. Конечная часть файла (.mp3)

Сценарий берет только префикс из исходного файла - часть ^/(. *), А затем перестраивает его в новый URL-адрес ($ 1 содержит часть между скобками в части выше).

([0-9]+) обнаруживает уникальный номер, поэтому, если вы хотите сделать что-то более сложное в будущем, вы можете написать (например) скрипт PHP, который позволяет пользователю загружать файл, и регистрирует информацию о нем изменив правило перезаписи на

RewriteRule ^/(.*)-([0-9]+).mp3 /path/process.php?mp3=$1&userid=$2

(Конечно, вам также потребуется написать скрипт php, но в приведенном выше примере показана логика того, как правило перезаписи обрабатывает URL-адрес по частям.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .