Trewq 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) Здравствуйте уважаемые разработчики. Это сообщение вобщем-то должно было появиться раньше, ещё на первых версиях DataLife Engine, но мне думалось, что такой ляп будет замечен сразу и обязательно кто-нибудь о нём напишет. Но увы, эта ошибка продолжается из версии в версию до сих пор, уже до версии 6.0. Суть вот в чём: - в HTML ссылки вида href="/file указывают на файл выше ссылки - на файл в этом же каталоге указывают ссылки вида ссылки вида href="file То есть это совершенно разные адреса: <a href="/blabla.php">ссылка 1</a> <a href="blabla.php">ссылка 2</a> В DataLife Engine с самого начала в темплейтах все локальные ссылки почему-то были вида href="/file Если DataLife Engine установить в корень сайта, то ошибок не возникало, т.к. сервер попросту не пускал никого выше папки сайта. А вот если установить DataLife Engine не в корень сайта, то некоторые картинки оформления, ссылки меню, и т.д. - были неправильными, картинки не показывались, ссылки не открывались. Пожалуйста, будьте так любезны, исправьте наконец в темплейтах ссылки вида href="/blabla.php на правильные, то есть на href="blabla.php Спасибо. Изменено 21 июня 2007 пользователем Trewq Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 Что-то я не помню таких ссылок, приведите пожалуйста примеры Цитата Ссылка на сообщение Поделиться на других сайтах
Trewq 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) Автор Пожалуйста, вот примеры. Берём DataLife Engine v6.0 Открываем блокнотом файл templates\Default\main.tpl С помощью поиска ищем href="/ Находим 14 таких неправильных ссылок: <a href="/index.php"><img src="{THEME}/images/dlet_ic_home.gif" width="11" height="10" border="0" /></a> <a href="/index.php?do=feedback"><img src="{THEME}/images/dlet_ic_feedback.gif" width="11" height="9" border="0" /></a> <a href="/index.php"><img src="{THEME}/images/dlet_top_22_2.gif" width="167" height="25" border="0" /></a> <a href="/index.php">Главная</a> <a href="/index.php?do=register">Регистрация</a> <a href="/index.php?do=stats">Статистика</a> <a href="/index.php?do=feedback">Контакты</a> <a href="/engine/rss.php">RSS 2.0</a> <a href="/index.php?do=search&mode=advanced">Расширенный поиск</a> и т.д.... Правильные ссылки будут без слэша после кавычек , например: <a href="index.php?do=register">Регистрация</a> Ну или если полностью соблюдать стандарты HTML, то можно перед слэшем поставить точку: <a href="./index.php?do=register">Регистрация</a> Точка будет указывать, что файл index.php лежит на сайте в этом же каталоге. Сейчас же все локальные ссылки в DataLife Engine именно со слэшем без точки, что равносильно двум точкам перед слэшем: <a href="../index.php?do=register">Регистрация</a> То есть две точки указывают, что файл index.php лежит на сайте на каталог выше. И если DataLife Engine установлен не в корень сайта, а в папку (например папка "dle"), то по ссылке Регистрация открывается не регистрация в DataLife Engine, а index.php корня сайта. Изменено 21 июня 2007 пользователем Trewq Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 А вот вы про что. Я не считаю это ошибкой, ибо 2 слеша подряд никакой роли не играют. К примеру ваша тема на форуме доступна и по адресу http://forum.dle-news.ru///index.php?showtopic=35118 Ну там я погорячился и 3 слеша поставил, но и с двумя тот же результат Цитата Ссылка на сообщение Поделиться на других сайтах
Trewq 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) Автор Вы не поняли. Создайте у себя на сервере папку dle, назовите HTML-файл test.php, напишите в нём вот такую строку: <a href="/test.php">Регистрация</a> И положите HTML-файле в папку dle. При щелчке на ссылку у вас будет открываться не text.php в папке dle, а браузер будет пытаться открыть несуществующий файл text.php в корне сайта. Если использовать DataLife Engine не в корне сайта, а в любой папке, то локальные ссылки с такой ошибкой не открываются. <a href="/test.php">Регистрация</a> ссылка указывает на каталог выше (слэш перед именем файла) <a href="test.php">Регистрация</a> ссылка указывает на этот же каталог (без слэша перед именем файла) <a href="../test.php">Регистрация</a> ссылка указывает на каталог выше (две точки и слэш перед именем файла) <a href="./test.php">Регистрация</a> ссылка указывает на этот же каталог (одна точка и слэш перед именем файла) Это спецификация языка HTML. Изменено 21 июня 2007 пользователем Trewq Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) Понял теперь. Видимо никто до вас не ставил DLE в папку. Либо исправляйте ссылки, либо <base href="http://sitename.ru/ваша папка/"> Изменено 21 июня 2007 пользователем lifestar Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 Тоже сегодня ночью заметил =( Цитата Ссылка на сообщение Поделиться на других сайтах
Trewq 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) Автор Понял теперь. Видимо никто до вас не ставил DLE в папку. Либо исправляйте ссылки, либо <base href="http://sitename.ru/ваша папка/"> Вы извините, но вы так и не перестаёте не понимать. 1. В ссылках DLE присутствует ошибка. 2. Я уже давно у себя всё исправил. 3. Я разработчику показываю ошибку. 4. Вы мне отвечаете "исправляйте". 5. Ни я, и ни другие пользователи, никто - понимаете, совершенно НИКТО не обязан, заплатив деньги, исправлять брак разработчика. Свой брак разработчик обязан исправить сам! И никаким боком тут не имеет значения в какую папку любой покупатель ставит DLE. Если вы и есть разработчик, то глядя на ваши ответы становится понятно почему до сих пор в DLE простейшие ошибки HTML. Если вы не разработчик, то пожалуйста перестаньте нести чушь. Если бы речь шла о бесплатном софте, то я вообще бы просто молча исправил ссылки и ничего никому не сказал, ибо разработчик мне был бы ничем не обязан. А DLE платный софт, так что будьте любезны. Изменено 21 июня 2007 пользователем Trewq Цитата Ссылка на сообщение Поделиться на других сайтах
Гость Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 <#thank#> Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 Trewq, согласен с вами. Я не разработчик, просто практически все покупные скрипты я меняю под свои нужны и эти ошибки как бы меняю заодно. Вы правы. Разработчика к ответу! Цитата Ссылка на сообщение Поделиться на других сайтах
baxus 49 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 Всё на самом деле банально просто...нужно поковырятся.... Заходим в настройки системы и в пункте адресс сайта меняем с ввв.домен.ру на ввв.домен.ру/дле И в принципе скрипт будет распознавать папку дле как корневую папку..... тоесть в ссылках просто К ввв.домен.ру.дле дописывается /индех.пхп в итоге правильная ссылка будет ввв.домен.ру/дле/индех.пхп Цитата Ссылка на сообщение Поделиться на других сайтах
Akela 9 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 <a href="/test.php">Регистрация</a> ссылка указывает на каталог выше (слэш перед именем файла) ... Это спецификация языка HTML. Это вы что-то напутали - слэш перед именем файла указывает на то, что данный файл лежит в корневом каталоге, а никак не "на каталог выше". Впрочем, вся эта тема ни к чему, в предыдущем посте все правильно написано и так работает на сотнях сайтов уже два года и без проблем. Цитата Ссылка на сообщение Поделиться на других сайтах
Trewq 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) Автор Всё на самом деле банально просто...нужно поковырятся.... Заходим в настройки системы и в пункте адресс сайта меняем с ввв.домен.ру на ввв.домен.ру/дле И в принципе скрипт будет распознавать папку дле как корневую папку..... тоесть в ссылках просто К ввв.домен.ру.дле дописывается /индех.пхп в итоге правильная ссылка будет ввв.домен.ру/дле/индех.пхп Очаровательно "банально просто". Но при изменениях настроек системы "скрипт будет распознавать папку дле как корневую папку", а ссылки, о которых речь выше - НЕ БУДУТ распознавать папку DLE как корневую папку. Скрипт DLE - хороший скрипт, его можно использовать для разных каталогов, и на сайте можно поставить несколько DLE, один будет каталогом фильмов, второй новостями, третий складом с софтом. И всё это можно установить не в корень. Но у разработчика ошибка в ссылках. И поэтому давайте закончим давать советы "банально просто", ибо банальнее и проще исправить эти ошибки в дистрибутиве скрипта при его разработке. Это вы что-то напутали - слэш перед именем файла указывает на то, что данный файл лежит в корневом каталоге, а никак не "на каталог выше". Впрочем, вся эта тема ни к чему, в предыдущем посте все правильно написано и так работает на сотнях сайтов уже два года и без проблем. Почему оно с ошибкой в ссылках работает на сайтах - написано выше (1 сообщение этой темы). И если вы считаете, что напутал я, то откройте спецификацию HTML и сами увидите, что слэш перед именем файла указывает на то, что данный файл лежит на каталог выше. Но если это вас не убедит, то установите DLE в любую папку ниже корня сайта и увидите, что эти ссылки со слэшем работать не будут. Изменено 21 июня 2007 пользователем Trewq Цитата Ссылка на сообщение Поделиться на других сайтах
Akela 9 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 И если вы считаете, что напутал я, то откройте спецификацию HTML и сами увидите, что слэш перед именем файла указывает на то, что данный файл лежит на каталог выше. Но если это вас не убедит, то установите DLE в любую папку ниже корня сайта и увидите, что эти ссылки со слэшем работать не будут. Может мне еще в школу пойти учиться ? "Uniform Resource Identifiers (URI): Generic Syntax", T. Berners-Lee, R.Fielding, L.Masinter, август 1998. Обратите внимание, что этот RFC 2396 обновляет [RFC1738] и [RFC1808]. A relative reference beginning with a single slash character is termed an absolute-path reference, as defined by <abs_path> in Section 3. A relative reference that does not begin with a scheme name or a slash character is termed a relative-path reference. rel_path = rel_segment [ abs_path ] rel_segment = 1*( unreserved | escaped | ";" | "@" | "&" | "=" | "+" | "$" | "," ) Within a relative-path reference, the complete path segments "." and ".." have special meanings: "the current hierarchy level" and "the level above this hierarchy level", respectively. Although this is very similar to their use within Unix-based filesystems to indicate directory levels, these path components are only considered special when resolving a relative-path reference to its absolute form Цитата Ссылка на сообщение Поделиться на других сайтах
Trewq 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 Автор Может мне еще в школу пойти учиться ? Может и пойти, учиться не хотят только дураки, вы же не хотите, чтобы вас таковым считали. Вот тут по поводу слэша в ссылках всё от печки показано: http://neponyatlovomu.narod.ru Цитата Ссылка на сообщение Поделиться на других сайтах
Шефф 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 http://neponyatlovomu.narod.ru познавательный сайт на хорошем хостинге)) Цитата Ссылка на сообщение Поделиться на других сайтах
Akela 9 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 Может мне еще в школу пойти учиться ? Может и пойти, учиться не хотят только дураки, вы же не хотите, чтобы вас таковым считали. Вот тут по поводу слэша в ссылках всё от печки показано: http://neponyatlovomu.narod.ru Ага, это типа сайт, который "откройте спецификацию HTML" ? А я то дурак думал, что привел цитаты с сайта описания спецификации Uniform Resource Identifiers (URI). Ну, при наличи таких аргументов смысла в дальнейшей дискуссии я не вижу . З.Ы. Интересно, какие "аргументы" приведет владелец сайта непонятливому дураку вместо "Щёлкай, и ты увидишь, что попадёшь на папку выше.", если поместит свой файлик по адресу http://neponyatlovomu.narod.ru/test/test1/test2/link.htm ? Цитата Ссылка на сообщение Поделиться на других сайтах
Trewq 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) Автор Ага, это типа сайт, который "откройте спецификацию HTML" ? А я то дурак думал, что привел цитаты с сайта описания спецификации Uniform Resource Identifiers (URI). Ну, при наличи таких аргументов смысла в дальнейшей дискуссии я не вижу . З.Ы. Интересно, какие "аргументы" приведет владелец сайта непонятливому дураку вместо "Щёлкай, и ты увидишь, что попадёшь на папку выше.", если поместит свой файлик по адресу http://neponyatlovomu.narod.ru/test/test1/test2/link.htm ? Дискуссия действительно бесполезна, если наглядный пример не воспринимаете. А если поместить файлик в test/test1/test2, то ссылка со слэшем выведет в корень сайта, но это уже похоже вас совсем заставит не учиться, поэтому в теме объяснено всё проще. Увы, но даже и так не доходит. Прощайте мальчики, мне надоело несколько раз объяснять одно и то же, кто дочитав эту тему не понял ошибки в ссылках DLE, мои соболезнования, к сожалению это неизлечимо. Изменено 21 июня 2007 пользователем Trewq Цитата Ссылка на сообщение Поделиться на других сайтах
Akela 9 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) ...А если поместить файлик в test/test1/test2, то ссылка со слэшем выведет в корень сайта, но это уже похоже вас совсем заставит не учиться, поэтому в теме объяснено всё проще. Увы, но даже и так не доходит. Стоило так много писать прежде чем признать свою ошибку и правоту написанного выше в посте #12 . Dixi. Изменено 21 июня 2007 пользователем Akela Цитата Ссылка на сообщение Поделиться на других сайтах
Tong 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 (изменено) Trewq, до свиданья девочка Изменено 21 июня 2007 пользователем Tong Цитата Ссылка на сообщение Поделиться на других сайтах
1vic 0 Опубликовано: 21 июня 2007 Рассказать Опубликовано: 21 июня 2007 Может и пойти, учиться не хотят только дураки, вы же не хотите, чтобы вас таковым считали. Вот тут по поводу слэша в ссылках всё от печки показано: http://neponyatlovomu.narod.ru Etot website vam nichego ne ob'yasnil. Pochitaite normal'nyu stat'yu zdes': Here is some info from pros: The URL structure defines a hierarchy (or relationship) that is similar to the hierarchy of subdirectories (or folders) in the filesystems used by most computer operating systems. The segments of a URL are separated by slash characters ("/"). When navigating the URL hierarchy, the final segment of the URL (i.e., everything after the final slash) is similar to a file in a filesystem. The other segments of the URL are similar to the subdirectories and folders in a filesystem. A relative URL omits some of the information needed to locate the referenced document. The omitted information is assumed to be the same as for the base document that contains the relative URL. This reduces the length of the URLs needed to refer to related documents, and allows document trees to be accessed via multiple access schemes (e.g., "file", "http", and "ftp") or to be moved without changing any of the embedded URLs in those documents. Before the browser can use a relative URL, it must resolve the relative URL to produce an absolute URL. If the relative URL begins with a double slash (e.g., //www.htmlhelp.com/faq/html/), then it will inherit only the base URL's scheme. If the relative URL begins with a single slash (e.g., /faq/html/), then it will inherit the base URL's scheme and network location. If the relative URL does not begin with a slash (e.g., all.html , ./all.html or ../html/), then it has a relative path and is resolved as follows. 1. The browser strips everything after the last slash in the base document's URL and appends the relative URL to the result. 2. Each "." segment is deleted (e.g., ./all.html is the same as all.html, and ./ refers to the current "directory" level in the URL hierarchy). 3. Each ".." segment moves up one level in the URL hierarchy; the ".." segment is removed, along with the segment that precedes it (e.g., foo/../all.html is the same as all.html, and ../ refers to the parent "directory" level in the URL hierarchy). Some examples may help make this clear. If the base document is <URL:http://www.htmlhelp.com/faq/html/basics.html>, then all.html and ./all.html refer to <URL:http://www.htmlhelp.com/faq/html/all.html> ./ refers to <URL:http://www.htmlhelp.com/faq/html/> ../ refers to <URL:http://www.htmlhelp.com/faq/> ../cgifaq.html refers to <URL:http://www.htmlhelp.com/faq/cgifaq.html> ../../reference/ refers to <URL:http://www.htmlhelp.com/reference/> Please note that the browser resolves relative URLs, not the server. The server sees only the resulting absolute URL. Also, relative URLs navigate the URL hierarchy. The relationship (if any) between the URL hierarchy and the server's filesystem hierarchy is irrelevant. See also * W3C's Naming and Addressing: URIs, URLs, ... * RFC 3986: Uniform Resource Identifier (URI): Generic Syntax Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.