как htaccess мод переписать php в mp4? - PullRequest
1 голос
/ 13 июня 2019

Мне нужно внести изменения в htaccess для проекта, над которым я работаю. Хотя я не знаю много об этом предмете, я хотел бы заявить, что я провел несколько экспериментов.

это оригинальная ссылка:

www.example.com / медиа / 14352/100/100 / название-abc.php

переписать ссылку на правило:

www.example.com / название-abc.mp4

динамические заголовки.

или

www.example.com / носитель / * * 1016 14352/100 / 100 / название-abc.php

www.example.com / медиа / 14352/100/100 / название-abc.mp4 * * тысяча двадцать-две

жирный шрифт, динамика

RewriteRule ^media/([0-9]+).mp4+$ (*).php [NC,QSA]
and
RewriteRule ^([0-9]+).mp4+$ $1.php [NC,QSA]

1 Ответ

0 голосов
/ 13 июня 2019

Правило, которое реализует то, что вы спрашиваете:

RewriteEngine on
RewriteRule ^/?(.+)\.mp4$ /media/14352/100/100/$1.php [END]

Я не знаю, действительно ли это решает вашу идею ... Иерархии папок Thos, которые вы очевидно используете в файловой системе на стороне сервера, сложнызакодировано в вышеуказанное правило.Нет способа каким-то волшебным образом угадать их из входящего запроса.Так что, если вы используете статический путь, все в порядке.Однако, если вам нужны разные пути в цели, в зависимости от фактического запроса, вам нужно искать другую стратегию.Я бы предложил сценарий маршрутизации в этом случае, который предлагает гораздо больше возможностей.

В случае, если вы получили внутреннюю ошибку сервера (http статус 500), используя вышеприведенное правило, есть вероятность, что вы используете очень старую версию сервера apache http.В этом случае вы увидите определенный намек на неподдерживаемый флаг [END] в файле журнала ошибок http-серверов.Вы можете попробовать обновить или использовать более старый флаг [L], он, вероятно, будет работать так же в этой ситуации, хотя это немного зависит от ваших настроек.

Это правило также будет работать в конфигурации хоста http-серверов или внутри файла динамической конфигурации (файл ".htaccess").Очевидно, что модуль перезаписи должен быть загружен внутри http-сервера и включен на хосте http.Если вы используете динамический файл конфигурации, вам нужно позаботиться о том, чтобы его интерпретация была включена вообще в конфигурации хоста и чтобы он находился в папке DOCUMENT_ROOT хоста.

И общее замечание: вам всегда следует размещать такие правила в конфигурации хоста http-серверов, а не использовать файлы динамической конфигурации (".htaccess").Эти динамические файлы конфигурации добавляют сложность, часто являются причиной неожиданного поведения, их трудно отладить, и они действительно замедляют работу http-сервера.Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).

ОБНОВЛЕНИЕ:

Вот вариант вышеупомянутого правила, которое основывается на том, что путь является частью запрошенного URL, так что он только «изменяет» «расширение имени файла» в URL (зачем вообще такое расширение ?)

RewriteEngine on
RewriteRule ^/?media/(.+)\.mp4$ /media/$1.php [END]
...