Как сделать красивую ссылку php
Красивый URL
Или вот еще один пример. Допустим, вам надо вывести статистические данные о работе компании за каждый месяц.
Итак, приступим к созданию простых адресов. Для начала нужно выяснить, поддерживает ли ваш сервер mod_rewrite. Если вы пользуетесь платным хостингом, обратитесь в службу поддержки или к администратору сервера с просьбой уточнить этот момент и в случае чего добавить такую возможность.
Теперь давайте немного разберемся с синтаксисом построения указаний. Команда RewriteRule указывает серверу на перенаправление, ^/(.+)/dn_pg=(.+) — какой запрос перенаправлять, /cgi-bin/download.cgi?id=$1&name=$2 — реальный адрес перенаправления, наконец, [T=application/x-httpd-cgi,L] указывает на CGI/Perl-скрипт.
Теперь зададим правило для перенаправления по второму примеру:
Последняя строка задает формат, в данном случае цифры от 0 до 9 — (1+), — и перенаправляет каждую цифру на соответствующий адрес ($1,$2).
Запись (2+) свидетельствует про обработку только цифр, то есть буквы затрагиваться не будут.
Также бывают ситуации, когда нужно сделать редирект со старой страницы на новую. Вот пример подобного сценария:
Бывают такие ситуации, когда нужно, чтобы начальная страница запускалась с множеством параметров (это когда вы используете CGI- или PHP-скрипты и хотите, чтобы при первой загрузке сайта в них передавались какие-нибудь данные).
Если добавить в [T=application/x-httpd-cgi,L] параметр R, то перенаправление будет явным, а не скрытым.
Сначала перенаправляем http://www.my-site.com.ua на home, далее index.html на тот же home (на тот случай, если кто-нибудь вздумает набрать в строке браузера http://www.my-site.com.ua/index.html) и в конце перенаправляем home на cgi-bin/index.cgi?topic=main&page=1.
Хочу заметить одну важную деталь — если в строке браузера ввести http://www.my-site.com.ua/home/ (в конце добавим /), то пользователь получит ошибку. Это связано со спецификой компонента mod_rewrite. Поэтому для таких ситуаций нужно прописывать еще одну строку:
Напоследок хочу сказать, что mod_rewrite можно использовать и для более сложных задач, например для поиска нужных файлов в разных каталогах, а также для виртуальных доменов.
htaccess и красивые ссылки
Я пытаюсь написать простой блог, который работает нормально, пока я не доберусь до симпатичных ссылок.
то, что я хочу сделать, это использовать URL-адреса, такие как mysite.com/blog/this_post и передать его в файл index.html в качестве параметра url, так что index.html? blog = this_post
Был поиск везде и нашел кучу кода htaccess, но большинство не работало. Я нашел одно решение, которое пытается работать, но по какой-то причине не делает это правильно. (с частью Options + FollowSymLinks и без нее)
когда я использую это, я получаю /blog/index.html?blog=index.html в URL вместо того, чтобы сохранить / blog / this_post и перенести его в index.html, как и ожидалось. Может ли что-то на сервере быть установлено неправильно? все остальное в блоге работает как шарм, но ничего страшного в скрипте — просто получение симпатичных ссылок для работы.
Посмотрел старый сайт, на котором есть WordPress и который копировал этот код htaccess, но он делает то же самое. Все остальные поиски здесь и на других сайтах указывают на то же решение выше или на wordpress, но по какой-то причине он передает index.html в сценарий, а не последний URL-сегмент «this_post», как и ожидалось.
что должно произойти, это пользователь вводит в
что остается в адресной строке правильно? но файл htaccess извлекает this_post и передает его в качестве аргумента в скрипт index.html. что должны делать приведенные выше примеры. почему он меняет адресную строку на
я не уверен почему
edit-ссылка для возможного дубликата была тем, который я уже нашел и попытался получить текущий RewriteRule, но он все еще не работает.
Решение
Лучший способ — сделать что-то простое:
тогда вы можете сделать URL-адрес, как:
Таким образом, вы можете сделать оба звонка и будет работать нормально.
Другие решения
Кажется, я нашел комбо, которое работает, комбо флага [NC, L] продолжает давать мне ошибку сбоя, поэтому я оставил его просто [NC]. Наличие его в корневом каталоге учетных записей, кажется, также не работает, поэтому я перешел в веб-каталог (public_html), и это работает на данный момент.
До сих пор не уверен, почему флаг L вызывает сбой сервера на страницах или почему не работает его в корне, но перемещение его в папку public_html делает, возможно, это проблема конфигурации сервера, которую я пропускаю?
несколько способов сделать красивые url. что лучше?!
Новичок
несколько способов сделать красивые url. что лучше?!
решил сделать красивые Url на своем CMS. во первых это красиво, а во вторых это полезно для поисковиков 

знаю по крайней мере 2 способа сделать красивые url:
вариант №1 “мод реврайт”:
ссылки на странице выглядят красиво, например “www.my.com/news/342/” но на самом деле модреврайтом ссылка переделывается в “www.my.com/index.php?p=news&pg=342”
вариант нормальный, но имхо: 1.возможно не на всех хостингах есть реврайт, и 2.не очень хочется передрачивать каждый запрос
вариант №2 “файл без расширения”:
тут конечно тоже не обойтись без htaccess или переконфигурирования apache, но всеже без переделки все ссылок.
значит так, создаем в корне файл news, в htaccess (или в конфиге apache) пишем что этот файл выполняется как php файл, и все.
т.е.когда заходим по адресу: www.my.com/news/342/ на самом деле выполняется файл news в который передается значение 342
короче, все вроде просто и понятно.
вот только у меня счас запущен сайт, посещаемость несколько тысяч юзеров (ожидается еще больше), и хочется сделать все как можно лучше и стабильнее.
что вы предложите? (возможно даже есть и другие варианты 
Как сделать красивую ссылку с использованием ЧПУ
Как пищут мы должны получить ссылку: http://../site/index.php/news,
но к сожалению реврайт не произощел.
Где ощибка или в чем здесь может быть причина?
Добавлено через 23 часа 19 минут
Проблема решена.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Необходимо сделать редирект на https с использованием ЧПУ
Здравствуйте, столкнулся со следующей проблемой: На сайте успешно используется ЧПУ, но появилась.

Искал я на просторах интернета: “Как сделать кнопку более красивой?”, ничего нормального не.
Как сделать красивую форму?
Где-то полгода назад я наткнулся в инете на библиотеку элементов формы (в основном поле text).
Хоть проблема решена, все равно напишу, поскольку многие пользователи сталкиваются с такой проблемой..
Добавлено через 9 минут
У меня возник еще один вопросс..
Вобщем файл index.php ссылки делает короткие и понятные, но в этом файле содержаться 2 ссылки ведущие к фалам show.php и edit.php..
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как сделать красивую тень?
Такой вопрос Как сделать тень от слоя?
Как сделать красивую всплывающую подсказку?
Как сделать красивую всплывающую подсказку вместо стандартного желтого прямоугольника в.

К примеру, есть такая картинка островок, в котором есть зоны, по которым пользователь может.
Как сделать красивую навигацию между страницами?
Сайт На нем в центральном блоке внизу есть переключение между страницами,оно стоит очень.
Как сделать ЧПУ-ссылки
Чтобы мы говорили об одном и том же, давайте окончательно определимся с понятием ЧПУ-ссылки. Возьмём для примера мой сайт. Посмотрите сейчас в адресную строку. Вы там увидите следующее: http://myrusakov.ru/php-furl.html. Таким образом, можно подумать, что сайт состоит из простого набора HTML-страниц, что, безусловно, не так. В реальности ссылка выглядит так: http://myrusakov.ru/?view=article&id=271. Вот как раз замена последней ссылки на ту, что Вы сейчас видите, и называется преобразованием обычной ссылки в ЧПУ-ссылку.
Теперь же перейдём к реализации. Здесь всё достаточно сложно, поэтому если Вы не обладаете соответствующими знаниями, то лучше пропустите данную статью, и вернитесь к ней позднее. Само преобразование состоит из двух этапов:
Второй этап не легче первого. Сначала нужно добавить в файл .htaccess следующие строчки:
В данных строках происходит следующее: если пользователь делает запрос к несуществующему файлу или к несуществующему каталогу, то этот запрос передаётся к главной странице сайта (index.php), в которой он уже дальше будет обрабатываться. Например, Вы пишите в адресной строке: http://myrusakov.ru/php-furl.html. Такого файла не существует, поэтому этот запрос передаётся в файл index.php.
В файле index.php этот запрос должен обработаться, и должно произойти обратное преобразование из ЧПУ-ссылки в обычную ссылку. А уже с обычной ссылкой, Вы легко справитесь. Аналогично с прямым преобразованием (из обычной ссылки в ЧПУ) обратное преобразование также уникально для каждого движка.
Как можно понять из прочитанного, вся сложность состоит в преобразованиях, а сам общий алгоритм очень простой.
И, напоследок, хочу затронуть плюсы и минусы ЧПУ-ссылок. Начнём с плюсов:
Серьёзных минусов я могу выделить только два:
И, наконец, хочу отметить, что вариантов создания ЧПУ-ссылок существует далеко не один. Если преобразования совсем простые, то достаточно использовать лишь файл .htaccess, разумеется, написав там соответствующий код. В этой же статье я показал Вам, на мой взгляд, самый простой способ создания ЧПУ-ссылок, которым я сам уже много раз пользовался.
В общем, подумайте, нужны ли Вам ЧПУ-ссылки, и если нужны, то делайте. Уверяю Вас: во вред это точно не будет.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 85 ):
Добрый вечер Михаил, при создании сайта я столкнулся с проблемой создания ЧПУ ссылок, только не понимаю, как обработать ссылки в index странице, не могли бы вы создать урок по этой теме, для многих бы вопрос был бы закрыт. Спасибо вам за ваши труды.
Обработка в самом простом случае такая: if ($_SERVER[“REQUEST_URI”] == “myarticle.html”) < //Выводим статью myarticle.html >Вот и вся обработка. А уже сама обработка будет меняться у каждого, в зависимости от того, где хранятся соответствия и как к ним обращаются.
Михаил спасибо, разобрался, извини за глупый вопрос :)))
А где можно подробнее почитать о первом этапе, а именно о том, как такую ссылку: http://myrusakov.ru/?view=article&id=271 заменить на http://myrusakov.ru/php-furl.html
Ключевым моментом здесь является использование регулярных выражений.
Вы затронули тему о снижении скорости загрузки страниц. А существуют ли какие-нибудь сервисы или приложения, которые позволяют тестировать время выполнения скриптов. Добустим у меня была одна функция для поиска по базе данных, я решил написать другую. На глаз прироста/потери в скорости невидно, как можно сравнить скорость их выполнения?
1. Зависит от страницы и от сервера. У меня время генерации 16-24 мс. 2. Попробуйте http://tuner/fff Если не получится, то либо index-файла нет, либо что-то всё-таки не так сделали.
Попробуйте добавить ещё это: RewriteEngine On
Через rewriterule делается: RewriteRule ^test/(7+)/$ test.php?id=$1
С папками намного проще работать, а вот обрезать пасширения файлов и менять их на другие или сделать из categories.php?id=3 в categories/3.html или post.php?id=3 в 3.html примеры выще очень сложны
Здравствуйте! Помогите понять как преобразовать вот такую ссылку /category/kosmos/index.php?id=1 вот в такую /category/kosmos/1 /category/kosmos/index.php?id=2 = /category/kosmos/2 /category/kosmos/index.php?id=3 = /category/kosmos/3 и так далее. Что-то я смотрю, читаю, а понять не могу. Спасибо!
Сработала конструкция RewriteEngine on RewriteBase / RewriteCond %
Вопрос снят прописал абсолютные пути на эти файлы всё заработало
Код правильный, всё должно работать. Либо файл не существует, либо в сервере какая-то проблема.
Если всё грамотно делать, то никаких вложенных условий не появляется. Как делаю я, показано в данном курсе: http://srs.myrusakov.ru/php
Страничная навигация все-равно будет с условиями. Почему-то не получается вынести в функцию. Ну да не об этом. После оптимизации получил время генерации страницы от 0.008 до 0.12 на денвере. Мне пока хватит. Вопрос по обработке. При переходе по ссылке, я обрабатываю адрес строковыми функциями, это верное направление мысли или есть способы попроще и функциональнее?
Что ещё за переход по ссылке? Зачем его обрабатывать?
К примеру при переходе по ссылк site.ru/user в индекс-файле я в условии при помощи функций strstr(); strpos(); обрабатываю строк адреса, если после слеша находится всего одно слово откидываю слеш и по базе ищу пользователя с указанным именем (естественно уникальным). Нужный результат достигнут, но обработка ссылки при помощи строковых функций меня смущает. Правильно ли это или есть способ попроще?
Так я ее и анализирую. If(strpos($_SERVER[‘REQUEST_URI’], “/”) === strstr($_SERVER[‘REQUEST_URI’], “/”))<.



