Неправильная обработка отсутствующих страниц
| Macik |  | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ставим 0.9.5 (из master ветки). Устанавливаем URL Editor. копируем sef-urls.htaccess в .htaccess. Имеем некорректное поведение в случае ссылки на несуществующие страницы. Пример (пусть localhost/cotonti/ локальный адрес главной страницы), тогда : http://localhost/cotonti/test/ - худо-бедно покажет нам сообщение: Не найдено (404) http://localhost/cotonti/test/test.html (несуществующая) - отобразит нам главную страницу. С точки зрения здорового web'а оба варианта некорректны. Первый вариант некорректен т.к.отдает код 302 Found, что противоречил логике т.к. файл все-таки не найден. Второй еще хуже т.к. получаем 200 OK и главную страницу сайта. Такое поведение системы плохо не только с точки зрения хорошего тона, но и с точки зрения SEO. Т.к. в данном случае механизм приводит к индексированию убитых и мусорных ссылок и "дублированию" содержимого главной страницы. Варианты решения: - для первого случая отдавать код 404, а редирект делать например средствами JS. - для второго случая править правила из sef-urls.htaccess, что бы сервер все-таки ненаходил отсутствующую страницу. ---------------------------------------------------------------- В дополнение: если установить URL Editor и перейти в раздел "Администрирования" (admin.php?m=other&p=urleditor) Получаем Warning (3 шт.) при отсутствии файла. urltrans.dat 
	Warning: fopen(./datas/urltrans.dat) [function.fopen]: failed to open stream: No such file or directory in cotonti\plugins\urleditor\urleditor.admin.php on line 359 Учитывая, что система корректно отображает сообщение об ошибке ( Ошибка
 ) Правильнее было бы поставить @ дабы подавить предупреждения: ---------------------------------------------------------------------- PPS не совсем по теме: пытаюсь указать для данной темы Теги. и получаю нижеследующее и кучу мусора в строке ввода: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 https://github.com/macik правильный хостинг — https://goo.gl/fjCa1F | 
| Trustmaster |  | 
|---|---|
| Спасибо за тестирование! Я разбил этот отчет на тикеты. Ремарка только по поводу редиректов: редиректы через JS нам не подходят, потому что движок должен быть полностью работоспособен и в случае noscript. Поэтому лучше, пожалуй, отображать ошибку на месте, без редиректов. May the Source be with you! | 
| Macik |  | 
|---|---|
| Замечательно. Спасибо. На счет JS редиректов - понял. Тогда, действительно, лучше без редиректов. (Чисто субъективно - редиректы мешают, т.к. нет возможности проверить ссылку в адресной строке на предмет случайной опечатки, т.к. она меняется после редиректа.) 
 https://github.com/macik правильный хостинг — https://goo.gl/fjCa1F | 
| Trustmaster |  | 
|---|---|
| Ошибки, связанные с ссылками устранил. Надо потестировать текущую версию. С тегами такой ошибки воспроизвести не получилось. Возникает по-прежнему? Если да, то в каком браузере. May the Source be with you! | 
| Macik |  | 
|---|---|
| (Слил текущую.) Что касается отдаваемых кодов. То все вроде ОК. Что касается несуществующей страницы, то все еще работает некорректно. (запросил с тестового сервера несуществующую страницу из несуществующего каталога test/test.html - получил главную страницу всесто "404"). Насройки из sef-urls.htaccess, там на сколько я понимаю последняя строка за это отвечает. Что касается глюков с тегами - я видимо ввел в заблуждение, т.к. эта ошибка возникла не в master версии. А здесь на сайте cotonti.com когда я создавал тему. Но на всякий случай проверю на днях на Master... ps: Хорошо бы, если кто-то найдет силы/время написать небольшую инструкцию (how-to) как работать с версией на GitHub. В свое время была такая инструкция для разработчиков Котонти когда он лежал на SVN - все просто и понятно. У себя Гит настроил. Но в голове все-равно каша. В общем хочется простого описания хотябы как слить свежую мастер ветку себе. Как ответвится (не знаю надо ли это) если есть необходимость поправить что-то подсебя (например config или htaccess), что бы потом очередным обновлением с Master'а не затереть неглядя свои правки. Сам использую Eclipse+EGit, но думаю это не принципиально, операции будут одинаковыми. 
 https://github.com/macik правильный хостинг — https://goo.gl/fjCa1F | 
| Trustmaster |  | 
|---|---|
| Статические страницы как исключения надо самостоятельно в начале .htaccess прописывать. Пример добавления статических папок test и myfolder: # Default path and static files protection RewriteRule ^(datas|images|js|test|myfolder)/(.*)$ $1/$2 [QSA,NC,NE,L] Поскольку у каждого там свои папки/файлы могут быть, то тут универсальное правило не сделаешь. May the Source be with you! | 
| Graber |  | 
|---|---|
| всеж обработку 404 нужно додумать. 
	domain.com/demo.html - ведет на главную а вообще хорошо-бы иметь возможность указать страницу 404 Кто бездействует, тот не завоевывает | 
| Macik |  | 
|---|---|
| #30888 Trustmaster: Тут смысл в другом - несуществующие страницы не должны вести на главную, а дожны отдавать нормально 404. Иначе любая опечатка в адресе страницы (не важно где расположена ссылка на сайте или стороннем ресурсе) - будет приводить к тому, что кривая ссылка будет нормально индексироваться поисковиком как дубль главной страницы, что скорее всего ухудшит выдачу. 
 
 https://github.com/macik правильный хостинг — https://goo.gl/fjCa1F | 
| Graber |  | 
|---|---|
| Вот и я про это говорю, что несуществующие страницы ведут на главную. Кто бездействует, тот не завоевывает | 
| Alex300 |  | 
|---|---|
| Кроме этого для сео было бы хорошо чтобы если у страницы есть алияс, то при обращении к ней по id редиректить 301 на URL обращающейся к ней по алиясу. Так не будет страниц с дублированным контентом. При включенном URL едиторе при обращении не по sef-ссылкам редирект 301 на sef ссылки (можно и опционально) При обращении по старым ссылкам (от Genua) редирект на новые. Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!... ...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ | 
| Trustmaster |  | 
|---|---|
| #30901 Alex300: Для этого у нас есть такая штука как Canonical URL. Добавьте в header.tpl: 
<link rel="canonical" href="{HEADER_CANONICAL_URL}" />Он будет для "неправильных" ссылок говорить поисковику, что это дубликат документа по канонической ссылке. May the Source be with you! | 
| Macik |  | 
|---|---|
| В продолжение темы о некорректном повединии rewrite правил. Проверьте, пожалуста, на последней master копии (сейчас нет возможности проверить), как обстоят дела со следующим: site.com/robots.txt меня на главную выкидывает вместо содержимого robots.txt (0.9.5), собственно как и с остальными (кроме php) файлами в корне. 
 https://github.com/macik правильный хостинг — https://goo.gl/fjCa1F | 
| Trustmaster |  | 
|---|---|
| Есть такое дело, и не только в корневой папке. Предлагаю добавить фильтр по расширениям файлов. May the Source be with you! | 
| Macik |  | 
|---|---|
| Я так понимаю, что происходит это из за вот этой строки: # All the rest goes through standard rewrite gateway RewriteRule ^([^?]+) index.php?rwr=$1 [QSA,NC,NE,L] Думаю настраивать исключающие правила на каждый чих - громоздко и затратно. Сегодная нам нужен robots.txt, завтра sitemap.xml и т.д. Может правильнее будет в index.php проверять, что нам пришло в $_GET['rwr'] и если ссылка идет на несуществующий контент - отдавать 404 ошибку, а если существующий - показывать соотв. страницу или отдавать конечный файл. 
 https://github.com/macik правильный хостинг — https://goo.gl/fjCa1F | 
| Chiaroscuro |  | 
|---|---|
| При красивых ссылках присутствует и /forum.php и просто /forum, как то можно победить? |