Как переписать mp3 имя файла с помощью .htaccess - PullRequest
0 голосов
/ 09 февраля 2019

Я пытался защитить свой mp3, используя mod_rewrite в моем файле htaccess.

Я читаю эти темы:

как написать перенаправление .htaccess, как это делает stackoverflow для еговопросы

htaccess переписать динамический mp3 в динамический php?

Как скрыть имя файла из URL, используя .htaccess

этот веб-сайт:

https://code.tutsplus.com/tutorials/using-htaccess-files-for-pretty-urls--net-6049

и это видео:

https://www.youtube.com/watch?v=uPlZekNEU60

Мне удалось переписать имя файла в filename.pdf сэто правило:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.pdf -f 
RewriteRule ^([^\.]+)$ $1.pdf [NC,L]

Теперь, чтобы защитить свой mp3, я хочу переписать свой URL

filename.mp3 /? uuid = что-то в https://cdn.com/123456/t/filename.mp3

Я пыталсяэто правило:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.mp3 -f 
RewriteRule ^([a-zA-Z0-9]{30})$ https://cdn.com/123456/t/$1.mp3 [NC,L]

, но оно не работает

Я пробовал это:

RewriteRule ^(\w*.mp3)+)$ https://cdn.com/123456/t/$1 [NC,L]

, но он подавляет сайт: (

Любой совет?

1 Ответ

0 голосов
/ 10 февраля 2019

Ваша последняя RewriteRule имеет слишком много закрывающих скобок в конце и будет повторять совпадение mp3 1 или более раз.

Если вы удалите эту скобку, оставив ^(\w*.mp3)+, она все равно повторится один или несколько разструктура группировки, которая будет соответствовать этому шаблону \w*.mp3.Это будет соответствовать 0+ раз символу слова, за которым следует любой символ из-за точки и mp3.

Это может соответствовать, например, zmp3.Если вы хотите сопоставить буквальную точку, вам нужно ее избежать.

Я думаю, что вы имели в виду:

RewriteRule ^(\w+\.mp3/)$ https://cdn.com/123456/t/$1 [NC,L]

Вы можете проверить, состоит ли строка запроса из одной пары ключ / значение:

RewriteCond %{QUERY_STRING} ^uuid=\w+$ [NC]
...