За последние 24 часа нас посетили 21890 программистов и 1009 роботов. Сейчас ищут 658 программистов ...

Как делать красивые URL без mod_rewrite

Тема в разделе "PHP для новичков", создана пользователем Ti, 13 окт 2006.

  1. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Код (Text):
    1. mysql_query("SELECT * FROM `users` WHERE `hash` = " . mysql_real_escape_string($_COOKIE["hash"]) . " AND `id` = " . mysql_real_escape_string($_COOKIE["id"]));
     
  2. V1RR

    V1RR Активный пользователь

    С нами с:
    3 апр 2010
    Сообщения:
    1
    Симпатии:
    0
    Прочитал тему, но так и не понял как такой URL делать? Объясните пожалуйста, или киньте ссылку на такой мануал :)
     
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    и
    http://example.com/index.php?p=link

    одно и тоже. Если не указан файл скрипта, то отрабатывает скрипт, указанный в DirectoryIndex
     
  4. mihailov.o.v

    mihailov.o.v Активный пользователь

    С нами с:
    8 апр 2010
    Сообщения:
    1
    Симпатии:
    0
    Разве одинаковое? Мне почему то казалось что это немного другое и индексдер не трогает
     
  5. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Кстати, спрошу раз зашел сюда. Интересуем преобразование ссылок в вид site.ru/news/svezaja_novost_pro_robertsona. Кликаешь по таким - и видишь на странице в заголовке новости "Свежая новость про Робертсона". То есть не по числовому ид ищется статья, а вот по самому названию. Это при добавлении в базу название в транслит переводится и по нему извлекается из базы? То есть типа SELECT * FROM table WHERE id = 'svezaja_novost_pro_robertsona' ?
     
  6. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    месяц прошел. сколько мне ждать ответа!?))
     
  7. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    не по id а по slug извлекается
     
  8. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Koc
    че за slug? просто типа по названию статьи?
     
  9. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    ну не совсем. Из названия генерируется этот slug: спецсимволы или режутся или заменяются на -/_ , происходит транслитерация и тд.

    Это может быть простое поле варчар 100
     
  10. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Koc
    совсем не интересно както)) думал, будет чтото посложнее.
    за справку - спасибо.
     
  11. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Апельсин
    .htaccess
    Код (Text):
    1. <FilesMatch news>
    2.    ForceType application/x-httpd-php
    3. </FilesMatch>
    создаешь файл news (без расширения).
    PHP:
    1. <?php
    2. print_r($_GET);
    http://url/news/bla/bla/bla
    Это первая страница топика.
     
  12. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    бугага.

    Забейте, тема "как создать ЧПУ без mod_rewrite" утратила свою актуальность года так 3 назад.
     
  13. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    При создании статьи (записи), помимо названия на русском оставьте поле для english в мускуле, т.е. как только создаёте статью, и вводите название на русском, второе поле (для ЧПУ) автоматом транслитерируется (например с помощью js) - это ещё удобно втом случае, если вы не довольны транслитерацией, и можно поставить свой вариант. Следовательно раз у нас имеется поле в мускуле содержащий чпу-тайтл, его запросто находим и вытаскиваем "То есть типа SELECT * FROM table WHERE id = 'svezaja_novost_pro_robertsona' "
     
  14. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Mark32
    Та уже все написано и работает :)
     
  15. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Только вопрос зачем это надо? Поисковику пофиг какие у вас ссылки, главное скорость генерации страницы и контент. Хотя гугл подсвечивает при поиске и адреса - и может показаться что это важно, но на выдачу никак не влияет. Многие называют это ЧПУ, т.е. человекопонятный урл, - разьве какой-нибудь site.ru/superkovodstvo/58/14 это чпу? опять же "svezaja_novost_pro_robertsona", а если как это обычно длинный тайтл например: "Сенсационные материалы второй мировой войны. Вся правда о лете 42 года." или ещё длинее. Чё делать? Укротим: "sensazionnie_materiali_vtor" или типа того, или обрезать на каком-то слове целиком - уже нет необходимости значит. Не проще ли /articles/item.php?id=289 - а для пользователя тег <title> существует. Помоему это только у лебедева пользователи "стирают предпоследние слешы" в адресной стоке, и им от этого удобно :)

    чпу на мой взгляд нужен только в некоторых технически обоснованных ситуациях. Например на каких-нибудь соцпроектах: mysite.ru/users/urik или некоторых магазинах site.ru/samsung/e320 и т.п.

    И ещё одно интересное: слышал что поисковикам важна длинна урла. т.е. site.ru/?p=789 оптимальнее чем site.php/news/zagolovok_novosti/
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Mark32
    Поисковику пофиг какие у вас ссылки
    не пофик. давно уже не пофик.

    И ещё одно интересное: слышал что...
    Посмотрите урлы википедии =)
     
  17. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    этож википедия... :)
    давайте забацаем свою энциклопедию, тока в два раза больше и ссылки сделаем покороче :))))
    да я сам не уверен в последнем, просто то положение вероятно сформулировно на том основании, что физический размер короткой ссылки меньше, и...
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    гугл точно ведется на слова в урле. яндекс - хз, ща этой темой не интересуюсь, но на слова в домене - ведется.
     
  19. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Поисковику действительно НЕ пофиг.

    а яндекс (скорей всего и гугл) на такие линки дает определенный лимит для сайта. Вообще урл со знаком "?" нежелателен, уж лучше /articles/289
     
  20. Mark32

    Mark32 Активный пользователь

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Апельсин, к малому, и не очень грубому примеру :) nbdbank.ru
     
  21. saveck

    saveck Активный пользователь

    С нами с:
    21 июл 2010
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Россия
    А на сколько длинным может быть УРЛ?
    Ну например у меня есть около 200 символов, поисковик такие воспринимает?
     
  22. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
  23. vanatomas

    vanatomas Активный пользователь

    С нами с:
    11 сен 2010
    Сообщения:
    7
    Симпатии:
    0
    Код (Text):
    1. RewriteEngine On
    2. RewriteRule ^([^.]+)$ index.php
    Вот много говорилось, что $_POST[] работает, а как ниодного примера.
    Так как же его использовать?

    Вот попробовал. Так не работает
    Код (Text):
    1. <? define( 'HOST', 'http:/'.'/'.$_SERVER['HTTP_HOST'] );?> 
    2. <form action="<? print(HOST.'/one/two'); ?>" enctype="multipart/form-data" method="post">
    3.         <label>Укажите файл для закачки:</label>
    4.         <input type="file" name="pic" /><br /><input type="hidden" name="proba" value="qwerty"/><br />
    5.         <input type="submit" value="Закачать" />
    6.     </form>
    Так работает
    Код (Text):
    1. <? define( 'HOST', 'http:/'.'/'.$_SERVER['HTTP_HOST'] );?>     
    2. <form action="<? print(HOST); ?>" enctype="multipart/form-data" method="post">
    3.         <label>Укажите файл для закачки:</label>
    4.         <input type="file" name="pic" /><br /><input type="hidden" name="proba" value="qwerty"/><br />
    5.         <input type="submit" value="Закачать" />
    6.     </form>
    Но в этом случае ЧПУ то нет! Как же ПРАВИЛЬНО решается такая ситуация?
     
  24. Rim

    Rim Активный пользователь

    С нами с:
    28 дек 2010
    Сообщения:
    53
    Симпатии:
    0
    Товарищи, добрый день!
    Прочел все что тут написано, и все внешние ссылки, большое Вам спасибо за подборочку и создание темы!
    Есть вопрос по выше написаному: как можно заставить сервер отображать GET запросы index файла ввиде таких ссылок: http://localhost/news/page/2/
     
  25. vadikoff.ru

    vadikoff.ru Активный пользователь

    С нами с:
    13 авг 2012
    Сообщения:
    5
    Симпатии:
    0
    а в чем смысл темы "Как делать красивые URL без mod_rewrite" если вы тут толдычите именно о нем?