Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Заблокирован

Определить, что ссылка ведет на файл

09.01.2025, 18:20. Показов 676. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Файла на сервере нету...

Есть url, как лучше всего определить что url ведет на файл?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2025, 18:20
Ответы с готовыми решениями:

Ссылка ведёт не на внешний источник, а на якорь
http://webdesigner.cx.ua/ Вот сайт, в секции "Портфоліо" на примере работ при наводе есть кнопка "Testing". Проблема в том,...

Ссылка на Мои документы ведёт на несуществующий диск
Добрый вечер У меня на старом харде, который сломался, папка Мои доки были на диске D. Потом, когда хард сдох и я поменял его, папку...

Внутренняя ссылка на другой странице не ведет на нужный блок
Привет, Проблема с внешней ссылкой не другую страницу из Меню. Код со страницы site.ru/page.html <a...

9
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
09.01.2025, 21:10
Цитата Сообщение от Dmit199 Посмотреть сообщение
Есть url, как лучше всего определить что url ведет на файл?
Смотря с какой целью. Если вы хотите не выводить ссылку случае отсутствие файла, то можно проверить через функцию is_file($filepath) - только тут нужно передавать не url, а полный путь к файлу относительно файловой системы.
0
Заблокирован
10.01.2025, 05:05  [ТС]
Необходимо изменить код ответа на 410, файла нету. Запрос на файл, необходимо выставить код 410.

Вопрос в том, как через выражение определить что на конце строчки присутствует точка перед расширением файла.
0
Эксперт .NET
 Аватар для Usaga
14099 / 9316 / 1349
Регистрация: 21.01.2016
Сообщений: 34,991
10.01.2025, 05:38
Dmit199, файл не обязан иметь расширение. Урл вообще не обязан отражать путь к файлу.
0
Заблокирован
10.01.2025, 06:33  [ТС]
Не путь к файлу, url, есть ссылка на файл, с расширением.

Как определить что на конце строчки, до точки, не более 5 символов.

Если на конце менее 5 символов до точки, расценивать данный url как url на файл.
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
10.01.2025, 08:21
Dmit199, Между url и файлом нет прямой связи. Это так настроен сервер, что ссылка совпадает с именем файла, но по протоколу http нет понятия файл - не файл это все ссылки на ресурс. Если ресурс отсутствует - как правило отдают 404.

По протоколу http работают не только сайты, и в каких-то случаях важно указать, что ресурс был именно удален, но тут принципиально, что он ранее был доступен по данной ссылке. т.е. вы таким образом указываете, что сама ссылка корректная и это не ошибка клиента. Поэтому недостаточно просто смотреть на 5 символов. Ведь я могу ввести ссылку на ресурс, который никогда не существовал, и будет просто некорректно отдавать 410.

И почему вы хотите отдавать именно на файлы?
0
Заблокирован
10.01.2025, 08:27  [ТС]
При запросе на несуществующий файл, отдает 404 код, хочу поменять код на 410.

Чтобы быстрее поисковик забыл про url

Добавлено через 2 минуты
А не годами посещал ссылку и каждый раз получал 404 код...
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
10.01.2025, 09:00
Dmit199, Если у вас Apache, то можно через .htaccess
Code
1
2
3
4
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} \..{2,5}$ [NC]
RewriteRule .* - [L,R=410]
Добавлено через 1 минуту
Dmit199, Или перечислить расширения
Code
1
2
3
4
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} \.(gif|jpe?g|png|svg|js|css|txt|webp)$ [NC]
RewriteRule .* - [L,R=410]
0
Заблокирован
10.01.2025, 09:02  [ТС]
nginx, от Apache отказался и слава богу)
0
Невнимательный
 Аватар для ft4l
2840 / 1267 / 358
Регистрация: 08.02.2013
Сообщений: 7,388
Записей в блоге: 2
10.01.2025, 09:45
Лучший ответ Сообщение было отмечено Dmit199 как решение

Решение

Цитата Сообщение от Dmit199 Посмотреть сообщение
до точки, не более 5 символов.
может после точки ?
PHP
1
2
3
4
5
6
7
if (preg_match('~^/[^?]+\.([a-z]{1,5})(?=\?|$)~i', $_SERVER['REQUEST_URI'], $m)) {
/*  если подходящее тут будет что-то вроде
$m =array (
  0 => '/path/file.ext',
  1 => 'ext',);
*/
}
Но , как сказали , все эти REQUEST_URI условность,
тем-более если запрос пути с именем статического файла у Вас обрабатывает php.
... Куча вариантов, как он туда попадает ...
толи Location /xxx в конфигах и использование PATH_TRANSLATED, толи Rewrite любые возможные,
толи ещё как с юзанием всяких CONTEXT_DOCUMENT_ROOT и CONTEXT_PREFIX

Добавлено через 8 минут
Цитата Сообщение от Dmit199 Посмотреть сообщение
изменить код ответа на 410
Наверное понял... в обработчике 404 хотите юзать...
тогда распечатайте $_SERVER и смотрите чего там насчёт пути
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.01.2025, 09:45
Помогаю со студенческими работами здесь

По Index Server. ссылка никуда не ведет, то есть vpath='' у каждой страницы
Посредством статьи и приведенных в форуме советов удалось запустить поиск по сайту с единственной проблемой - почему-то у найденных страниц...

Как определить, что ссылка проиндексирована?
Вот купил я ссылку, смотрю на ту морду - вижу ссылку на себя, делаю запрос в Яндексе: anchor#link="адрес.моего.сайта*" - не вижу...

Ссылка на гугл форму в Word ведёт на страницу, где просят обновить браузер Google Chrome
Здравствуйте. Есть Word'овский документ, в котором есть ссылка (например, вот эта - https://forms.gle/NuFQDE2Y9AXsNSXH8). Но, когда я по...

Возможно-ли что бы в поле OLE отображалось не ссылка на файл с картинкой а сама картинка
Подскажите возможно-ли что бы в поле OLE отображалось не ссылка на фал с картинкой а сама картинка. Если возможно то как?

Что такое ссылка и как определить, является ли элемент страницы ссылкой?
Что такое ссылка и как определить, является ли элемент страницы ссылкой?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru