Форум программистов, компьютерный форум, киберфорум
Наши страницы

Apache, htaccess

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.96
Garrys808
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
#1

Настройка mod_rewrite (ЧПУ) - Apache, htaccess

21.04.2013, 23:39. Просмотров 6706. Ответов 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 не получается
с первой частью я поступил так:

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

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

Добавлено через 1 час 17 минут
видимо тут никогда не дождаться помощи!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2013, 23:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Настройка mod_rewrite (ЧПУ) (Apache, htaccess):

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

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

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

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

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

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

140
mialpet
Сексуальный
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 15:33 #31
Цитата Сообщение от mialpet Посмотреть сообщение
RewriteRule ^(.*)/(.*)[/]?.*$ page.php?title_url=$1&id=$2
Хотя бы просто скажите что это неправильно, чего вы меня игнорите?
0
Garrys808
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:37  [ТС] #32
Цитата Сообщение от KOPOJI Посмотреть сообщение
разместите в файле page.php, в самом начале, такой код:
PHP
1
<?php var_dump($_GET);exit;
И попробуйте понабирать адреса

Добавлено через 55 секунд
в .htaccess оставьте код
Код
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ page.php?id=$1 [L]
вот результаты:
http://s808.local/Order-Transfer/21 - array(1) { ["id"]=> string(17) "Order-Transfer/21" }
http://s808.local/page.php?title_url=Order-Transfer&id=21 - array(2) { ["title_url"]=> string(14) "Order-Transfer" ["id"]=> string(2) "21" }
http://s808.local/page.php?title_url=Residence-permit-Czech-Republic - array(1) { ["title_url"]=> string(31) "Residence-permit-Czech-Republic" }
http://s808.local/Residence-permit-Czech-Republic - array(1) { ["id"]=> string(31) "Residence-permit-Czech-Republic" }
0
mialpet
Сексуальный
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 15:43 #33
Цитата Сообщение от mialpet Посмотреть сообщение
RewriteRule ^(.*)/(.*)[/]?.*$ page.php?title_url=$1&id=$2
Стоп дык это и есть ваш вариант первоначальный и как я и говорил путь к CSS файлам под него попадает, снова напишите свой вариант и не забудьте
Код
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Как мне подсказывает логика это не будет редиректить пути к существующим файлам, и будет вам счастье блин.
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
22.04.2013, 15:46 #34
Так, отлично. php-файл не трогаем, оставляем тот же код. Меняем .htaccess
Код
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_A-Za-z0-9]+)/?$ page.php?title_url=$1 [L]
RewriteRule ^([-_A-Za-z0-9]+)/(\d+)/?$ page.php?title_url=$1&id=$2 [L]
Переходим по первому и последнему адресам.

Добавлено через 1 минуту
Еще как будет
-d - является директорией
-f - является файлом
Восклицательный знак перед - отрицание, т.е. "Если файл не является директорией и не является файлом, то..."
0
Garrys808
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:46  [ТС] #35
Цитата Сообщение от mialpet Посмотреть сообщение
Хотя бы просто скажите что это неправильно, чего вы меня игнорите?
прошу прощения стараюсь решить проблему от-того и весь поглощен в процессе не увидел Ваше сообщение!
При вводе вашего варианта никакой реакции работают только полные пути
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
22.04.2013, 15:47 #36
Руководство по настройке ЧПУ (Rewrite)
0
mialpet
Сексуальный
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 15:49 #37
Цитата Сообщение от KOPOJI Посмотреть сообщение
Еще как будет
-d - является директорией
-f - является файлом
Восклицательный знак перед - отрицание, т.е. "Если файл не является директорией и не является файлом, то..."
...редирект, иначе нет, правильно?
CSS файл является файлом.
0
Garrys808
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 15:53  [ТС] #38
Цитата Сообщение от KOPOJI Посмотреть сообщение
Так, отлично. php-файл не трогаем, оставляем тот же код. Меняем .htaccess
Код
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-_A-Za-z0-9]+)/?$ page.php?title_url=$1 [L]
RewriteRule ^([-_A-Za-z0-9]+)/(\d+)/?$ page.php?title_url=$1&id=$2 [L]
Переходим по первому и последнему адресам.

Добавлено через 1 минуту
Еще как будет
-d - является директорией
-f - является файлом
Восклицательный знак перед - отрицание, т.е. "Если файл не является директорией и не является файлом, то..."
вот результат

http://s808.local/Family-reunification - array(1) { ["title_url"]=> string(20) "Family-reunification" } - работает
http://s808.local/page.php?title_url=Family-reunification - array(1) { ["title_url"]=> string(20) "Family-reunification" } - работает
http://s808.local/page.php?title_url=Order-Transfer&id=21 - array(2) { ["title_url"]=> string(14) "Order-Transfer" ["id"]=> string(2) "21" } - нормально работает
http://s808.local/Order-Transfer/21 - array(2) { ["title_url"]=> string(14) "Order-Transfer" ["id"]=> string(2) "21" } - без CSS все выводится
0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
22.04.2013, 15:58 #39
вот если введете путь к css файлу, тогда его и получите.

Добавлено через 1 минуту
Цитата Сообщение от Garrys808 Посмотреть сообщение
вот результат
Итого:
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" />
0
Илья Федин
22.04.2013, 15:58
  #40

Не по теме:

Интересный случай...
Ничего если я и дальше буду наблюдать?

0
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
22.04.2013, 15:59 #41
аналогично должно быть со js-скриптами и картинками

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

Не по теме:

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

0
mialpet
Сексуальный
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
22.04.2013, 16:01 #42
Цитата Сообщение от KOPOJI Посмотреть сообщение
По поводу css - я уже писал, и не раз что нужно сделать - поставить слэш в начале путей
Собственно это я воспринимаю как само собой, и при этом все что требовалось человеку изначально это написать
Код
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Правда после второго слэша в адресе должны быть только цифры, а в первоначальном варианте допускались и буквы, хотя может так и нужно и скрипт сам это проверяет.
0
Garrys808
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:02  [ТС] #43
Цитата Сообщение от 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
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
22.04.2013, 16:03 #44
Цитата Сообщение от Garrys808 Посмотреть сообщение
HTML5
1
<link rel="stylesheet" type="text/css" href="s808.local/www/styles/s8.css" />
это не от корневой директории. Хотите таким образом - прописывайте полностью, вместе с протоколом. Так, как вы это написали - будет искать файл, находящийся в папке s808.local/www/styles относительно текущей директории
0
Garrys808
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 66
22.04.2013, 16:06  [ТС] #45
Цитата Сообщение от KOPOJI Посмотреть сообщение
это не от корневой директории. Хотите таким образом - прописывайте полностью, вместе с протоколом. Так, как вы это написали - будет искать файл, находящийся в папке s808.local/www/styles относительно текущей директории
поставил / styles - CSS начал работать, но все картинки в header пропали
0
22.04.2013, 16:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2013, 16:06
Привет! Вот еще темы с ответами:

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

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

Настройка mod_rewrite - Apache, htaccess
Курю второй день mod_rewrite, но не получается, хоть тресни. Необходимо динамические странички вида http://site.su/aaa/?artwork=one или...

Настройка .htaccess mod_rewrite - Apache, htaccess
Добра всем! Есть ссылка вида: sait.ru/urlimg.php?id=1&amp;url=2 Скрипт: if (isset($_GET)){ echo &quot;Yes id!&quot;; $ID_user =...


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

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru