Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/54: Рейтинг темы: голосов - 54, средняя оценка - 4.70
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66

Настройка mod_rewrite (ЧПУ)

21.04.2013, 23:39. Показов 11014. Ответов 140
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
имеется сайт на котором нужно сделать ЧПУ на htaccess
страницы имеют вид http://mysyte.ru/page.php?title_url=mypage&id=30

первую часть у меня получилось преобразовать http://mysyte.ru/page.php?title_url=mypage в http://mysyte.ru/mypage
а вот с &id=30 не получается
с первой частью я поступил так:

Code
1
2
RewriteRule ^page.php/?title_url=$ [R=301,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ page.php?title_url=$1 [L]
для второй части пишу так

Code
1
2
RewriteRule ^page.php/?title_url=$1&id=$ [R=301,L]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ page.php?title_url=$1&id=$2 [L]
но сервер если набрать http://mysyte.ru/mypage/30 выдает ошибка 404 - такой страницы не существует подскажите где ошибка? прошерстил кучу форумов нигде ничего не нашел все варианты которые находил так же не работают.

Добавлено через 1 час 41 минуту
пишу так
Code
1
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/?$ page.php?title_url=$1&id=$2 [L]
страница выводится но без css т.е. белая рамка и в ней данные из нужной страницы

Добавлено через 1 час 17 минут
видимо тут никогда не дождаться помощи!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.04.2013, 23:39
Ответы с готовыми решениями:

mod_rewrite ЧПУ
Приветствую. Понимая, что подобных тем тьма, не хотел создавать новую но времени у меня нет особо чтоб рыскать ответ на мой вопрос, с...

Mod_rewrite и ЧПУ
Всем привет. Уже 2-ой день мучаюсь над реализацией ЧПУ для своего сайта. Хочу реализовать это дело через mod_rewrite. На локальной машине...

Не работает ЧПУ (mod_rewrite)
Уже голову себе сломал. Есть такая ссылка: <a href="/category/23">Категория с id=23</a> Теперь условие в .htaccess RewriteEngine on ...

140
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 15:59
Студворк — интернет-сервис помощи студентам
аналогично должно быть со js-скриптами и картинками

Добавлено через 14 секунд

Не по теме:

Цитата Сообщение от Илья Федин Посмотреть сообщение
Интересный случай
да уж..

0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 16:01
Цитата Сообщение от KOPOJI Посмотреть сообщение
По поводу css - я уже писал, и не раз что нужно сделать - поставить слэш в начале путей
Собственно это я воспринимаю как само собой, и при этом все что требовалось человеку изначально это написать
Code
1
2
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Правда после второго слэша в адресе должны быть только цифры, а в первоначальном варианте допускались и буквы, хотя может так и нужно и скрипт сам это проверяет.
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:02  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
вот если введете путь к css файлу, тогда его и получите.

Добавлено через 1 минуту

Итого:
1. регулярки рабочие, проблема в php-коде - т.к. обработка срабатывает так, как и должна - отправляет запрос на php-файл.
2. По поводу css - я уже писал, и не раз что нужно сделать - поставить слэш в начале путей

Добавлено через 2 минуты
было
HTML5
1
2
<link href="css/styles.css" rel="stylesheet" type="text/css" />
<link href="styles.css" rel="stylesheet" type="text/css" />
должно быть
HTML5
1
2
<link href="/css/styles.css" rel="stylesheet" type="text/css" />
<link href="/styles.css" rel="stylesheet" type="text/css" />
я уже и такй путь прописывал - проблема как была так и осталась

<link rel="stylesheet" type="text/css" href="s808.local/www/styles/s8.css" />
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 16:03
Цитата Сообщение от Garrys808 Посмотреть сообщение
HTML5
1
<link rel="stylesheet" type="text/css" href="s808.local/www/styles/s8.css" />
это не от корневой директории. Хотите таким образом - прописывайте полностью, вместе с протоколом. Так, как вы это написали - будет искать файл, находящийся в папке s808.local/www/styles относительно текущей директории
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:06  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
это не от корневой директории. Хотите таким образом - прописывайте полностью, вместе с протоколом. Так, как вы это написали - будет искать файл, находящийся в папке s808.local/www/styles относительно текущей директории
поставил / styles - CSS начал работать, но все картинки в header пропали
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 16:07
Я, конечно, глубоко извиняюсь, но тема раздула уже 5 страниц, и все только из-за того, что вы не сделали так, как написали сделать еще в самом начале - а начали делать "что-то свое". Попробовать поставить слэш вместо "s808.local/www/" сложно было!?

Добавлено через 39 секунд
Цитата Сообщение от Garrys808 Посмотреть сообщение
но все картинки в header пропали
Опять..
Цитата Сообщение от KOPOJI Посмотреть сообщение
аналогично должно быть со js-скриптами и картинками
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:12  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Я, конечно, глубоко извиняюсь, но тема раздула уже 5 страниц, и все только из-за того, что вы не сделали так, как написали сделать еще в самом начале - а начали делать "что-то свое". Попробовать поставить слэш вместо "s808.local/www/" сложно было!?

Добавлено через 39 секунд

Опять..
спасибо огромное за помощь, единственно не пойму теперь как пути прописывать для этих файлов CSS заработал а вот с картинками такой вариант пока не прокатил пытаюсь разные варианты прописать
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 16:14
HTML5
1
<img src="images/foobar.jpeg" alt="" />
меняем на
HTML5
1
<img src="/images/foobar.jpeg" alt="" />
HTML5
1
<script src="js/foobar.js"></script>
на
HTML5
1
<script src="/js/foobar.js"></script>
И т.п.
1
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:17  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
HTML5
1
<img src="images/foobar.jpeg" alt="" />
меняем на
HTML5
1
<img src="/images/foobar.jpeg" alt="" />
HTML5
1
<script src="js/foobar.js"></script>
на
HTML5
1
<script src="/js/foobar.js"></script>
И т.п.
Спасибо огромное, вот это я себе головную боль создал с этим ЧПУ - мне теперь для разных страниц нужно дополнительно около 400 блоков делать!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 16:19
Цитата Сообщение от Garrys808 Посмотреть сообщение
но все картинки в header пропали
в самом css-файле путь необходимо составлять относительно этой директории или от корня
1
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:22  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
в самом css-файле путь необходимо составлять относительно этой директории или от корня
это я уже понял, просто у меня были куча блоков как лего которые я подключал ко всем страницам в местах где нужно, а теперь мне нужно для тех страниц оставить те блоки а для этих страниц создать их дубликаты с прописаными другими путями!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 16:24
И об этом я уже писал..
Цитата Сообщение от KOPOJI Посмотреть сообщение
Тут два варианта:
1. Использовать тег <base>
2. В начале путей проставить слэш - /
Добавлено через 36 секунд
Цитата Сообщение от Garrys808 Посмотреть сообщение
а для этих страниц создать их дубликаты с прописаными другими путями!
не понимаю, зачем нужно создавать дубликаты?

Добавлено через 50 секунд
для php не будет разницы - он будет смотреть начиная от директории, где находится скрипт
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:28  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
И об этом я уже писал..


Добавлено через 36 секунд

не понимаю, зачем нужно создавать дубликаты?
как именно? это писать в htaccess - RewriteBase /
а во всех блоках прописывать все пути /blocks/my/file.php - так?

Добавлено через 2 минуты
Цитата Сообщение от KOPOJI Посмотреть сообщение
И об этом я уже писал..


Добавлено через 36 секунд

не понимаю, зачем нужно создавать дубликаты?

Добавлено через 50 секунд
для php не будет разницы - он будет смотреть начиная от директории, где находится скрипт
у меня бы тогда не было проблем с картинками и CSS
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 16:30
Не директиву RewriteBase, а html-тег <base> и не в .htaccess, а непосредственно в html-файле.

Цитата Сообщение от Garrys808 Посмотреть сообщение
а во всех блоках прописывать все пути /blocks/my/file.php - так?
если вы их подключаете через include/require (или выводите через fopen/file_get_contents/etc), то "можно" и не менять путь, он подключен. Если же хотите и там подключать от корневой директории, то не со слэша надо, а так
PHP
1
require $_SERVER['DOCUMENT_ROOT'] . '/blocks/my/file.php
Т.к. "браузерный" путь и "серверный" отличаются.
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:30  [ТС]
скрипты у меня разбиты в разных папках отдельно с файлами!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.04.2013, 16:32
Цитата Сообщение от Garrys808 Посмотреть сообщение
у меня бы тогда не было проблем с картинками и CSS
Не было бы проблем если бы вы их подключали через php. Вы их выводите с использованием html, а не php.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Garrys808 Посмотреть сообщение
скрипты у меня разбиты в разных папках отдельно с файлами!
Об этом надо было думать при разработке структуры.. Достаточно было создать одну константу с путем и подставлять ее везде - и проблем бы не было.

1
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
23.04.2013, 00:13  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Не директиву RewriteBase, а html-тег <base> и не в .htaccess, а непосредственно в html-файле.


если вы их подключаете через include/require (или выводите через fopen/file_get_contents/etc), то "можно" и не менять путь, он подключен. Если же хотите и там подключать от корневой директории, то не со слэша надо, а так
PHP
1
require $_SERVER['DOCUMENT_ROOT'] . '/blocks/my/file.php
Т.к. "браузерный" путь и "серверный" отличаются.
подключаю именно через include/require (или выводите через fopen/file_get_contents/etc), но все теряются же на экране сейчас

Добавлено через 2 минуты
Все спасибо огромное, все понял, сейчас буду разбираться и все переделывать! - всю жизнь живи - всю жизнь учись!

Добавлено через 7 часов 38 минут
Цитата Сообщение от Garrys808 Посмотреть сообщение
подключаю именно через include/require (или выводите через fopen/file_get_contents/etc), но все теряются же на экране сейчас

Добавлено через 2 минуты
Все спасибо огромное, все понял, сейчас буду разбираться и все переделывать! - всю жизнь живи - всю жизнь учись!
рано я радовался, не получилось столкнулся со следующей проблемой когда захожу допустим на страницу mysyte/page.php?title_url=Permanent таким образом /Permanent - все отлично работает, когда со страницы захожу на другую - mysyte/page.php?title_url=Permanent?id=25 таким образом mysyte/Permanent/25 - тоже все ок, а вот когда со страницы mysyte/Permanent/25 - перехожу к заказам адрес получается mysyte/Permanent/order - возникают проблемы сервер говорит что страницы такой нет но потом когда хочешь вернуться на index.php то адрес получается в строке mysyte/Permanent/page.php?title_url=index.php и все приехали сервер выдает ошибка 500
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
23.04.2013, 00:21
Цитата Сообщение от Garrys808 Посмотреть сообщение
перехожу к заказам адрес получается mysyte/Permanent/order - возникают проблемы сервер говорит что страницы такой нет
А я говорил что к вашему первоначальному решению нужно просто дописать
Code
1
2
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

Ну и адреса CSS, JS и картинок должны быть нормальными.
0
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
23.04.2013, 00:31  [ТС]
Цитата Сообщение от mialpet Посмотреть сообщение
А я говорил что к вашему первоначальному решению нужно просто дописать
Code
1
2
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

Ну и адреса CSS, JS и картинок должны быть нормальными.
HTML5
1
2
3
4
5
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([-_A-Za-z0-9]+)/(\d+)/?$ index.php?title_url=$1&id=$2 [L] 
RewriteRule ^([-_A-Za-z0-9]+)/?$ index.php?title_url=$1 [L]
даже такой вариант пробовал
RewriteCond %{REQUEST_URI} !^(.*)\.(.*)/$

Добавлено через 4 минуты
Цитата Сообщение от mialpet Посмотреть сообщение
А я говорил что к вашему первоначальному решению нужно просто дописать
Code
1
2
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

Ну и адреса CSS, JS и картинок должны быть нормальными.
как я понимаю у Апача почему-то начинают пути прописываться в на постоянку в строке вместо того чтобы перейти сразу на index.php со страницы допустим http://s808.local/Order-Excursion/20 в строке возникает следующий адрес http://s808.local/Order-Excurs... =index.php
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
23.04.2013, 00:34
Code
1
2
3
4
5
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ page.php?title_url=$1&id=$2 [L]
RewriteRule ^([A-Za-z0-9-]+)/?$ page.php?title_url=$1 [L]
По идее как-то так.

Добавлено через 1 минуту
Тире хз вроде экранировать по идее надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2013, 00:34
Помогаю со студенческими работами здесь

ЧПУ htaccess и mod_rewrite?
Всем доброго для! Кто может помогите разобраться с проблемой. Перечитал много тем а решения так и не нашел. Вот пример ссылки на...

Чпу, mod_rewrite и .htaccess
Наворотил делов так что вчера сайт вообще не отвечал, из-за условий в файле .htaccess он попадал в цикличность и выдавал сообщение...

Проблемы с настройкой ЧПУ в mod_rewrite
Уже не первый День и не первый раз пытаюсь осилить это ВЕЛИКОЛЕПНЫЙ модуль, но походу без посторонней помощи, более опытных специалистов...

mod_rewrite - как сделать ЧПУ?
Как через ф-цию mod_rewrite сделать ЧПУ?

Реализация ЧПУ на сайте (mod_rewrite)
Всем доброго времени суток. В общем, не хватает нервов уже на этот mod_rewrite и htaccess,поэтому пишу сюда. Подскажите,как правильно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru