wmmail.ru – cервис почтовых рассылок на главную
написать письмо
карта сайта

С чего начать?РекламодательПравилаFAQСтатистикаБиржа статейTOP100ФоткиКонтакты
Логин:
Пароль: 
Регистрация   Забыли пароль?
WMLogin
Пользователей всего:

453420

Пользователей сегодня:

61

Пользователей online:

592

Выплачено ($): 6`953`446,53
Выплат: 7`585`615
Писем прочитано: 1`009`502`720
Новые вопросы

Задать свой вопрос


 
 
Online 3
Все ответы
 
 

Вопрос #74604

Внимание! В разделе вопрос-ответ запрещается:

  • Мат, оскорбления, флуд, реклама
  • Сообщения, не являющиеся вопросами/ответами
  • Нарушение законодательства РФ
  • Попрошайничество в любой форме

Выделите текст и нажмите для цитирования  #  
+6   [11.06.2017 21:05] #682748

Закрытый вопрос от пользователя Вордпресс: не полный урл и 404 ошибка. Пути решения.

Как реализовать на вордпресс средствами самого кода, ну возможно и дополнением, дописывание ошибочных урлов сайта что бы не было 404 ошибки и открывалась нужная страница?
Возможно ли такое?

Для большей наглядности вопроса приведу пример:
Например есть сайт: site.ru
Есть например страница сайта: site.ru/o programmah

Если например пользователь скопировал неполную ссылку: site.ru/o programm, то по логике будет страница отдавать 404 ошибку. Как этого избежать и что бы при этом открылась нужная страница пользователю, то есть страница: site.ru/o programmah

Всем заранее спасибо.
Знаю, подскажу
12
Не знаю, не подскажу
16
Изложу подробно в комментарии к вопросу.
2
Раздел: Программирование, проголосовало: 30, последний комментарий: 16.06.2017 22:56
Вопрос закрыт пользователем Ass238
Проголосовали: Al-Yena, #2067656, DIRECTORMIITA, Sergey163RUS, andrey382, Topglory

Ответы
Ответов всего: 17  вопрос закрыт 
Выделите текст и нажмите для цитирования  #  
+1   [11.06.2017 21:19] vallo Рейтинг 7566.74     Стена пользователя vallo +329  Все ответы пользователя vallo

http://www.wmmail.ru/index.php?cf=wall-viewuser&uid=776416

Могу его посоветовать, может поможет!
Проголосовали: #682748
Выделите текст и нажмите для цитирования  #  
0   [11.06.2017 21:23] #682748   Все ответы пользователя

vallo пишет Могу его посоветовать, может поможет!

Да не, мне самому интересно поковыряться.
Может я что то упустил и есть скажем плагин какой то для такого, а может кто то сталкивался с такой задачей и ее решал средствами кода и есть решение. Хотя лучше бы конечно средствами кода.

А если он отпишется и что то посоветует будет хорошо и полезно для многих.
Выделите текст и нажмите для цитирования  #  
+1   [11.06.2017 22:32] #2067656   Все ответы пользователя

привет
мне не известно каким способом можно отправить на нужную страницу если урл прописан не полностью.

но известно, что страница 404 должна быть рабочей, а не просто кодом
наличие рабочей страницы ошибки 404, положительно влияет на ранжировании сайта

Добавлено спустя 05 минут 55 секунд
ну к примеру можно попробовать добавить на страницу 404 поиск по сайту с результатом по неправильному урлу
Проголосовали: #682748
Выделите текст и нажмите для цитирования  #  
+3   [11.06.2017 22:39] Revos Рейтинг 275.18     Стена пользователя Revos +28  Все ответы пользователя Revos

Насколько я помню, в вордпресс уже давно есть такая возможность — redirect canonical.
Если она не подходит, есть куча плагинов: nm404, Ultimate Redirect и т.п.
Проголосовали: #2067656, #682748, #3557513
Выделите текст и нажмите для цитирования  #  
+1   [11.06.2017 22:42] #2067656   Все ответы пользователя

Revos пишет nm404

:thumbsup:
Если запрос будет в конечном итоге к ошибке 404, этот плагин перенаправляет запрос на ближайший аналогичный орфографической URL в вашем блоге.
Проголосовали: #682748
Выделите текст и нажмите для цитирования  #  
+1   [11.06.2017 22:54] #1257597   Все ответы пользователя

Я к сожалению не знаком с вордпресс, не приходилось.
Но вот как я вижу с точки зрения JavaScript или php.

Пример сайт http: //www.wmmail.ru/index.php? - назовём это основная страница.
http: //www.wmmail.ru/index.php?cf=otvet-viewvopros&type=&vid=74604 - это страница вопрос-ответ.
Если её обрезать скажем так http: //www.wmmail.ru/index.php?cf=otvet то мы по любом попадём на основную страницу. Ошибка невыскочет. Этот сайт на php и разбирать его не будем. А вот на JavaScript это будет так:

http: // домен сайта разделительный знак ? а после него разные страницы:
http: //mysite?страница1
http: //mysite?страница2

Пользователь вставляет урл http: //mysite?страница1 или http: //mysite?страница2
и попадает на основную страницу с кодом JavaScript.
JavaScript извлекает с урла всё то что после знака ? и перебрасывает посетителя на - страница1 или страница2.

Если урл после разделительного знака ? будет не полным, то JavaScript будет решать что делать дальше. В простом случае посетитель останется на основной странице. Но ошибка всё равно невыскочет.

Код приблизительно такой:
var url = document.location.href
var arr = url.split('?')
arr[0] - это всё до знака ?
arr[1] - это всё после знака ?
Дальше очень приблизительный код просто чтобы было понятно:
document.location.href = document.location.href+arr[0]+'?'+arr[1] - переход на страницу http: //mysite?страница1 или страница2

Ну как то так. Правда я так делать не пробовал, только теоретически. На самом деле тут нужно думать...
Как реализовать:
http: //mysite?страница1
http: //mysite?страница2
Проголосовали: #682748
Выделите текст и нажмите для цитирования  #  
0   [11.06.2017 23:00] #682748   Все ответы пользователя

#2067656 пишет но известно, что страница 404 должна быть рабочей, а не просто кодом
наличие рабочей страницы ошибки 404, положительно влияет на ранжировании сайта

Так это понятно что 404 страица должна быть рабочей и ее дизайн дело веб мастера. Можно предложить перейти на 2главную", предложить поиск, предложить посмотреть какие то актуальные новости на сайте - это все понятно.
И это нормально когда страницы вообще такой нет на сайте.

Речь именно о том что страница есть, но юзер скажем не докопировал урл, в итоге он попадет на страницу 404, но ему не интересно читать не то что ему надо или же что то искать что надо.
Нужно что бы при не дописаном урле при переходе по нему он дописывался, разумеется если страница есть, если вообще похожего урла нет, то разумеется 404.
Когда то года 2 - 3 назад я такое реализовывал на другой CMS. Но у вордпресс свои особенности. Полагаю что реализовать можно.
Потому вот и спросил, может кто какую наводку даст или скажем так похожее решение. А допилить уже можно.

Добавлено спустя 04 минуты 27 секунд
Revos пишет redirect canonical

Название canonical как мне кажется говорит о том что речь скорее о дубле. Страница по двум и более адресам.
Но это не много не то совсем. Это другая плоскость проблемы.

Revos пишет nm404, Ultimate Redirect и т.п.

Посмотрю что за они. Разумеется корень решения вопроса в редиректе, но не только.
Поскольку сама по себе 404 нужна и должна работать, но для несуществующих страниц совсем.
Формально конечно не дописанный урл - это тоже как бы не существующая страница. Но тем не менее немного другое. Именно в таком случае только нужен по сути редирект.
Посмотрю что за плагины. Хотя отдаю предпочтение решению вопроса чистым кодом, ну может при рассмотрении плагинов появятся идеи

Добавлено спустя 05 минут 57 секунд
#2067656 пишет плагин перенаправляет запрос на ближайший аналогичный орфографической URL в вашем блоге.

что то вроде того.

Добавлено спустя 10 минут 04 секунды
#1257597 пишет
Если урл после разделительного знака ? будет не полным, то JavaScript будет решать что делать дальше. В простом случае посетитель останется на основной странице. Но ошибка всё равно невыскочет.

Схема хорошая, но я так понимаю тут надо целый комплекс и список урлов для скрипта. В принципе думаю так можно бы сделать конечно, но это когда сайт не большой.
Если страниц тысячи и + то что вордпресс построен так же на PHP решать вопрос надо серверными скриптами.
Посмотрю что там из плагинов подсказали, а так еще посмотрим может кто то еще что то предложит. Ну и сам буду думать.
Выделите текст и нажмите для цитирования  #  
+1   [11.06.2017 23:12] #1257597   Все ответы пользователя

#682748 пишет что бы при не дописаном урле при переходе по нему он дописывался

http: //mysite?первая
http: //mysite?вторая

JavaScript определяет допустим первые два символа после знака ?
http: //mysite?пе
http: //mysite?вт

if(arr[1].indexOf("пе") != -1) переход на первая
if(arr[1].indexOf("вт") != -1) переход на вторая
Проголосовали: #682748
Выделите текст и нажмите для цитирования  #  
+1   [11.06.2017 23:18] #682748   Все ответы пользователя

#1257597 пишет sportclub2010

Да, принцип именно такой. Но тут посложнее будет задача. И как мне кажется JS тут не обойтись.

Гляну что за плагин выше дали, если то что нужно, то его расковырять надо понять как работает и как это все внедрить в СMS редактированием файлов движка.
Проголосовали: #2067656
Выделите текст и нажмите для цитирования  #  
+1   [11.06.2017 23:58] Revos Рейтинг 275.18     Стена пользователя Revos +28  Все ответы пользователя Revos

#1257597 пишет
Но вот как я вижу с точки зрения JavaScript или php.

Для любого сайта самым простым способом будет написание кастомных RenowriteRules в .htaccess с использованием regex. Самым сложным — Soundex поиск по бд урлов сайта.
#682748 пишет
Revos пишет redirect canonical

Название canonical как мне кажется говорит о том что речь скорее о дубле. Страница по двум и более адресам.
Но это не много не то совсем. Это другая плоскость проблемы.
Так немного не то или совсем не то?
Вот тут описано, как работает эта функция:
https://wordpress.stackexchange.com/questions/92103/disable-wordpress-url-auto-complete?rq=1
Проголосовали: #682748
Выделите текст и нажмите для цитирования  #  
0   [12.06.2017 00:57] #682748   Все ответы пользователя

Revos пишет Так немного не то или совсем не то?
Вот тут описано, как работает эта функция:
https://wordpress.stackexchange.com/questions/92103/disable-wordpress-url-auto-complete?rq=1

Завтра с переводчиком почитаю что за она.
Но мне кажется не то.
Я так понимаю функция при наличии дублирующей страницы (если на сайте две и более существующие страницы с разными урл) делает редирект на нужную.
Две и более страницы с одинаковым содержанием не отдающие 404.

А по моей задаче, есть страница 1 и 1 урл.
Но завтра точнее про функцию почитаю.
Выделите текст и нажмите для цитирования  #  
+1   [12.06.2017 11:13] #1257597   Все ответы пользователя

А я опять о своём.
Забудьте всё что я писал выше, есть новый вариант:
Если у вас есть возможность редактировать страницу ERROR 404 (вставить туда JavaScript) и при открывании этой страницы будет виден урл по которому перешёл посетитель, то можно отследить этот урл, ну и дальше выполнить соответствующие действия.

Вот пример на Юкозе:
Нормальный урл http://s2.micp.ru/0149R.jpg
Этот же только не дописанный угл http://s3.micp.ru/7F8W6.jpg

Вот пример:
http://biggameportal.3dn.ru/load/
http://biggameportal.3dn.ru/loa
http://biggameportal.3dn.ru/lo
Ну и по одному символу, переход не задуман
http://biggameportal.3dn.ru/l
http://s3.micp.ru/aqk78.jpg

Практически это будет JavaScript с массивом из всех ссылок с вашего сайта. Правда при создании новой страницы, её нужно будет вводить в этот массив в ручную (менять JavaScript). Или придумать какую то логику в названии страниц, ну это уже из теории искусственный интеллект. Короче я дал идею если страница ERROR 404 работает так как на Юкозе.

Добавлено спустя 46 минут 51 секунду
Вот здесь можно http://s2.micp.ru/vKDI0.jpg
Здесь нельзя http://s1.micp.ru/i5Hed.jpg
Здесь можно http://s3.micp.ru/A880v.jpg
Проголосовали: #682748
Выделите текст и нажмите для цитирования  #  
+1   [12.06.2017 14:10] #682748   Все ответы пользователя

#1257597 пишет sportclub2010

Благодарю за идею. Да страница 404 доступна к редактированию. Ну направление и идея хорошая. Во всяком случае я еще размышляю над вопросом.
Что нибудь да решу.
Но разумеется учту все наводки здесь в ВО:yes:
Проголосовали: #1257597
Выделите текст и нажмите для цитирования  #  
+3   [14.06.2017 15:20] mzn Рейтинг 0.00     Стена пользователя mzn +18  Все ответы пользователя mzn

Здравствуй!

Если хочешь написать сам, то...
Когда скрипт не может найти страницу по данному URL он должен взять список aliasURL начинающихся с этого URL. Если результатов нет то выдать стандартную ошибку, если 1 результат - сделать редирект, в противном случае предложить выбор юзеру.

Например, если адрес содержит только название поста то выделяешь из URL обрезанное название и ищешь все похожие записи в таблице постов.

Файл роутинга (или функция), прямо перед выводом ошибки.


А вообще Redirect Canonical именно то что тебе нужно.
Проголосовали: Revos, #682748, goningtbp
Выделите текст и нажмите для цитирования  #  
+1   [15.06.2017 08:14] bazon Рейтинг 1235.00     Стена пользователя bazon +11  Все ответы пользователя bazon

#682748 пишет Как реализовать на вордпресс средствами самого кода, ну возможно и дополнением, дописывание ошибочных урлов сайта что бы не было 404 ошибки и открывалась нужная страница?

Видел решение в .htaccess независимо от движка. И в вордпресс наверняка можно реализовать скорее всего через регулярные выражения и функцию parse_url, preg_replace или preg_replace_callback_array
Проголосовали: #682748
Выделите текст и нажмите для цитирования  #  
0   [16.06.2017 08:06] #682748   Все ответы пользователя

mzn пишет А вообще Redirect Canonical именно то что тебе нужно.

Не то редирект этот.
Но проблему почти решил можно сказать, вопрос допиливается.

А каноникал, это же редирект при наличии нескольких страниц с одним содержанием и эти страницы есть. Почти то да не то. Но за оснву хорошо

Добавлено спустя 01 минуту 23 секунды
bazon пишет Видел решение в .htaccess

ранее я реализовывал такое в DLE легко и просто, но там другое ядро и проще. Повторение на вордпресс не дало результатов, отличие ядра играет роль
Но решаемо все
Выделите текст и нажмите для цитирования  #  
0   [16.06.2017 22:56] Topglory Рейтинг 4180.16     Стена пользователя Topglory +624  Все ответы пользователя Topglory

все страницы имеют свой ID материала. Если он не был удалён автором сайта и присутствует в адресах страниц, то всё будет перебрасывать куда надо автоматом.
Пример: полный адрес:
site.ru/вася/пупкин/1289-на-море
1289 это id материала, то даже если написать вот так:
site.ru/1289, будет открыта нужная страница.
По крайней мере у меня так работает на Joomla:yes:

Добавлено спустя 06 минут 32 секунды
#682748 пишет 404 ошибка

а тут я просто сделал редирект на главную страницу, да и все дела:yes:

Видеоурок

Вопрос-ответ

НОВОСТИ
10.10.2019Белый список
подробнее>>
04.09.2019С 15-летием WMmail
подробнее>>

© 2004-2019 «WMMAIL» Пользовательское соглашение