Автор Тема: Можно ли как-то на PHP автоматически переделывать ссылки?  (Прочитано 3798 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн evgkuz

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Можно ли как-то на PHP автоматически переделывать ссылки:
"/file.php?id=461" в "/461/" ?

Или это можно сделать только, генерируя директории и файлы "index.html" в них ?

Говорят, что это необходимо для лучшей обработки поисковиками, правда ли это ?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
не очень понял, где именно ты хочешь поменять ссылки.
Если в существуюших PHP-скриптах, то наверное самое простое, через

function change_links($buffer) {
... 
/// здесь через preg_replace меняешь ссылки
}

ob_start("change_links");

http://php.net/ob_start
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
хотя наверное тебе просто нужен mod_rewrite
На http://sitemaker.ru/ есть статьи
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Ancient

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 89
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ancient.dax.ru
Опять возвращаемся к теме которую обсуждали два дня назад... Сейчас еще кто-нибудь скажет что все поисковики нормально понимают url some.php?var=value

Онтосительно php есть способ (не проверенный):
1. пишем все что угодно и как угодно (some.php?var=value и т.д.)
2. Все ссылки делаем вида some.php/var-value/var1-value1/
3. пишем код в свою 404 страницу примерно след. содержания:
- разбираем нужные переменные
- выдаем код 302, переходим на нужный файл и передаем методом POST переменные которые получили из начального url.

Если register_globals=ON то должно сработать...
« Последнее редактирование: 14 Июня 2003, 14:02:45 от Ancient »
Ancient Team

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Ancient
не провереннный????
он на сотнях сайтов используется.
http://spectator.ru/issues/161

но mod_rewrite - корректнее.
•••Jah\'d never let us down!•••

Оффлайн Ancient

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 89
  • +0/-0
  • 0
    • Просмотр профиля
    • http://ancient.dax.ru
Короче, не знаю как на сотнях сайтах, вот что можно:
Разбираем uri и записываем все переменные в массив $HTTP_GET_VARS (или еще куда, не имеет значения). После этого делаем:


Header
("HTTP/1.1 200 OK");
require (
$scriptname);


$scriptname я думаю понятно откуда взять. Это работает.

PS Блин, только что посмотрел ссылку, оказывается я просто перепечатал то, что там уже давным-давно было написанно... Sorry
« Последнее редактирование: 14 Июня 2003, 15:35:53 от Ancient »
Ancient Team

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Xander
mod_rewrite ведь не устанавливается в Апаче по умолчанию, или? Насколько переносимым будет решение с использованием mod_rewrite? И в чем его корректность - в том, что не нужно выдавать браузеру ложного сообщения ОК?

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
что значит "по умолчанию"?
апач после установки нодо обязательно настравивать. А что бы заработал mod_rewrite надо раскомментировать две строчки в конфиге, насколько я помню. Это как - "по умолчанию" или нет? :)

переносимым куда?

Корректность в этом, да. А также в том, что ты не надо будет своим скриптом разбирать URL-ы. Ну и в логах мусора меньше будет.
Скорость, правда, будет существенно больше только тогда, когда директивы для mod_rewrite прописаны в htttpd.conf а не в .htaccess. По крайней мере раньше так было.
•••Jah\'d never let us down!•••

Оффлайн nagash

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 341
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.nagash.org
Xander
многие провайдеры отключают мод реврайт из-за того, что он очень много ресурсов потребляет...
так что скриптом всё такие интереснее ссылки разбирать... да к тому же больше вариаций когда скриптом... =)
« Последнее редактирование: 30 Июня 2003, 13:34:20 от nagash »

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28