всем привет. есть старенький статичный сайт, html с php-include. Назначена обработка для .htm-страниц в htaccess: <IfModule mime_module> AddType application/x-httpd-ea-php73___lsphp .php .php7 .phtml .htm .html </IfModule> ErrorDocument 404 /404.htm хостинг виртуальный. обратил внимание, что если перейти по URL вида: https://site.com/valid-url.htm/bla-bla-bla открывается та же самая страница https://site.com/valid-url.htm причем почему то она считается папкой, и изображения в коде вместо img/image.png пытаются открываться так: https://site.com/valid-url.htm/img/image.png при этом если открыть несуществующую url вида https://site.com/bla-bla-bla, то все ок, отдается /404.htm страница как это и положено. т.е. данная история срабатывает только для существующих страниц, к которым приписан слеш. что это такое и как это пофиксить подскажите плз?
Изображения запрашивает браузер. Имея такой адрес страницы, он абсолюьно логично шлет запросы на получение картинок как ты показал. Потому что адреса у тебя "относительные". PHP тут совсем не при чём! Надо понимать разницу между адресами <img src="img/image.png"> и <img src="/img/image.png"> для ссылок <a href> та же история
Добрый день! Если я перехожу по URL: https://site.com/valid-url.htm/bla-bla-bla https://site.com/valid-url.htm https://site.com/valid-url.htm/img/image.png у меня открывается одна и таже страница: https://www.salesforce.com/de/?ir=1
@Vladimir Kheifets я на вас удивляюь. Вы же не по сайту топикстартера ходите, а по "взрослому", в котором ссылки абсолютные, не зависящие от текущего адреса. Типа: <img src="/path/to/image"> или даже <img src="https://thesite.com/path/to/image"> ну загляните уже внуть страницы! ))) Выше я писал про косяк с относительными ссылками вида <img src="path/to/image"> без первого слеша. Этот адрес будет указывать на разные URL-ы в зависимости от базового адреса, т.е. адреса текущей страницы. --- Добавлено --- @dmitry251 откройте исходный код своей страницы и покажите как у вас выглядит проблемный тег <img> (хотя я и так догадываюсь)
Код (Text): <html> <head></head> <body> </body> <img src="img/smile.png" alt="1"> <img src="/img/smile.png" alt="2"> <img src="../img/smile.png" alt="3"> </html> --- Добавлено --- ↑↑↑ предлагаю топикстартеру подумать самому почему так получается. я на эту х%$ню больше тратить время не буду
Про ссылки с относительными адресами верно подметили. Но это уже следствие кривой настройки. ТС допустил грубую ошибку, заставив пых обрабатывать файлы с расширением .htm и т.п. Это небезопасно, ресурсоемко и т.п. Ну, и естественно тут же нарисовался PATH_INFO. Решение. PATH_INFO отключаем. И вместо «грубой силы» используем рерайт .htm в .php (при наличии соотв. php-файлов). Более грамотное решение. PHP-сайт на одних лишь инклудах – это поделка на уровне школоты. Лучше перенести на что-нибудь более вменяемое, отделяя контент о шаблонов. --- Добавлено --- А чтобы дубли с расширением .php было трудно найти, кладем их все в какой-то секретный каталог: /page.htm -> /секретный каталог/page.php /category/page.htm -> /секретный каталог/category/page.php --- Добавлено --- А вообще в норм. сайте лучше тоже использовать абс. пути в ссылках на внутряк и на главную. Относительные иногда могут быть полезны, но в общем без них можно прожить.
Простите, не понял, чем Вас так удивил. Я скопировал проблебные URL из топика в адресную строку браузера и написал, что увидел. Про косяки во внутренних ссылках, которые Вы описали, не возражал, согласен. Удачи!
А! Вы скопировали... но я так понимаю, ТС писал "site.com" как абстрактный домен, чтобы не деанонимизироваться. А вы сходили по ссылке и, опа!, она открылась (с редиректом на другой адрес)! Я этого не понял, извините. Уверен сайт Salesforce не имеет отношения к обсуждаемому вопросу.