Существует сайт где все страницы являются Динамическими созданными
(в виде - MySite/index.php?variable1=value1&variable1=value1 )
Хотелось бы преобразовать URL в статический адрес
(в виде - MySite/variable1-value1/variable1-value1/ )
Знаю что делается это в .htaccess файлик, находящийся в корне сайта, с использованием mod_rewrite. Но вот как именно?!
Гугл вывалил целую кучу результатов по запросу преобразования, но там либо плагиат либо какой-то мусор...
В общем нужно - автоматически преабразовывать динамический URL в статический, при этом не взирая сколько передается GET-переменных...
Заранее СПС...
(дай вам бог "здоровячка"
Спустя 3 минуты, 46 секунд (3.11.2011 - 18:28) Ramzil_Nixon написал(а):
Спустя 22 минуты, 34 секунды (3.11.2011 - 18:51) sergeiss написал(а):
Можно по-другому сделать, очень универсально и с минимальным использованием .htaccess.
Пишешь в htaccess строку
Можно другое имя скрипта задать, не суть важно. Главное, чтобы такой скрипт был и чтобы ты в нем правильно всё делал.
Затем юзер когда вводит MySite/variable1-value1/variable1-value1/ или переходит по ссылке с этого же сайта типа MySite/mashina-na-hodu-prodam-deshevo.php, то он попадает в скрипт missing.php. В котором ты обрабатываешь все переданные параметры и переадресуешь через header() на нужную страницу с нужными параметрами. Соответствие можешь хранить или в БД, или каким-либо другим образом его определять.
Самое главное, что тут можно делать разные (разнотипные) правила.
Работает как часы :) Проверено.
Пишешь в htaccess строку
ErrorDocument 404 /missing.php
Можно другое имя скрипта задать, не суть важно. Главное, чтобы такой скрипт был и чтобы ты в нем правильно всё делал.
Затем юзер когда вводит MySite/variable1-value1/variable1-value1/ или переходит по ссылке с этого же сайта типа MySite/mashina-na-hodu-prodam-deshevo.php, то он попадает в скрипт missing.php. В котором ты обрабатываешь все переданные параметры и переадресуешь через header() на нужную страницу с нужными параметрами. Соответствие можешь хранить или в БД, или каким-либо другим образом его определять.
Самое главное, что тут можно делать разные (разнотипные) правила.
Работает как часы :) Проверено.
Спустя 12 минут, 35 секунд (3.11.2011 - 19:03) lincorn написал(а):
Цитата (sergeiss @ 3.11.2011 - 15:51) |
Можно по-другому сделать, очень универсально и с минимальным использованием .htaccess. Пишешь в htaccess строку ErrorDocument 404 /missing.php Можно другое имя скрипта задать, не суть важно. Главное, чтобы такой скрипт был и чтобы ты в нем правильно всё делал. Затем юзер когда вводит MySite/variable1-value1/variable1-value1/ или переходит по ссылке с этого же сайта типа MySite/mashina-na-hodu-prodam-deshevo.php, то он попадает в скрипт missing.php. В котором ты обрабатываешь все переданные параметры и переадресуешь через header() на нужную страницу с нужными параметрами. Соответствие можешь хранить или в БД, или каким-либо другим образом его определять. Самое главное, что тут можно делать разные (разнотипные) правила. Работает как часы :) Проверено. |
Ну в принципе вроде понял НО если пользователь реально зайдет на несуществующую страницу (или в ручную побалуется с адресной строкой) то ErrorDocument 404 /missing.php будет обрабатывать весь переданный адресс (хоть и кривой) и не выдаст ошибки (или не перенаправит на страницу описания ошибки)...
И не совсем понял с соответствиями, ведь страницы (как и их URL) время от времени изменяются автоматически либо в ручную.
Конечно если более простого не нарою то буду с этой стороны заходить... Как бы там нибыло спс за подкинутую идею!
Спустя 11 минут, 56 секунд (3.11.2011 - 19:15) sergeiss написал(а):
А в чем проблемы обработать несуществующий адрес? Если такого адреса нету, то ты просто тут и пишешь об этом. В красивом виде, а не так, как это делается по умолчанию в браузере.
И если что-то глобально изменится, то и в htaccess менять надо.
И если что-то глобально изменится, то и в htaccess менять надо.
Спустя 9 минут, 53 секунды (3.11.2011 - 19:25) lincorn написал(а):
Цитата (sergeiss @ 3.11.2011 - 16:15) |
А в чем проблемы обработать несуществующий адрес? Если такого адреса нету, то ты просто тут и пишешь об этом. В красивом виде, а не так, как это делается по умолчанию в браузере. И если что-то глобально изменится, то и в htaccess менять надо. |
Ну с выводом ошибки разберусь,.. а вот почему рабочий линк формата MySite/index.php?variable1=value1&variable1=value1 перенаправится из за ErrorDocument 404 /missing.php Ведь ошибки то никакой не было и страница существует
Спустя 29 минут, 24 секунды (3.11.2011 - 19:54) sergeiss написал(а):
Вообще-то, исходя из сказанного тут
Цитата (lincorn @ 3.11.2011 - 19:24) |
Существует сайт где все страницы являются Динамическими созданными (в виде - MySite/index.php?variable1=value1&variable1=value1 ) Хотелось бы преобразовать URL в статический адрес (в виде - MySite/variable1-value1/variable1-value1/ ) |
я подумал, что ты как раз хочешь показывать юзеру последний из адресов и преобразовывать его в первый. Об этом и говорил. А наоборот и смысла нету, вроде как.