mysite.loc/index.php?cat=PHP&article=obrabotka_formy
как это переделать на:
mysite.loc/php/obrabotka_formy
???
Спустя 23 минуты, 44 секунды (5.07.2012 - 07:50) phz написал(а):
Вот хороший сервис http://www.generateit.net/mod-rewrite/
Спустя 22 минуты, 49 секунд (5.07.2012 - 08:13) Stasonix написал(а):
Воспользовался:
упс, mod_rewrite что-то у меня вообще не работает, сам модуль подключен, apache ни ругается по крайней мере, но увы, это правило не срабатывает.
А какое-нть для теста очень маленькое правило можете подсказать? ну там хотя бы только index.php убрать что ли?
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\$ /index.php?cat=$1&article=$2 [L]
упс, mod_rewrite что-то у меня вообще не работает, сам модуль подключен, apache ни ругается по крайней мере, но увы, это правило не срабатывает.
А какое-нть для теста очень маленькое правило можете подсказать? ну там хотя бы только index.php убрать что ли?
Спустя 16 минут, 53 секунды (5.07.2012 - 08:30) Stasonix написал(а):
нда... что-то тыкаю, тыкаю я это правило в .htaccess, но все без толку.
Спустя 26 минут, 26 секунд (5.07.2012 - 08:56) Stasonix написал(а):
пардон, тупо было uppercase, это опечатка:
а вообще вот так выглядит ссылка:
а вот так правило:
Увы... (не хочет изменять url).
mysite.loc/index.php?cat=PHP&article=obrabotka_formy
а вообще вот так выглядит ссылка:
<a href='index.php?cat=".strtolower($name)."&article=".translitIt($value)."'>".$value."</a>
а вот так правило:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\$ index.php?cat=$1&article=$2 [L]
Увы... (не хочет изменять url).
Спустя 2 дня, 8 часов, 47 минут, 3 секунды (7.07.2012 - 17:44) Stasonix написал(а):
в общем в итоге я пришел к тому что сработало у меня такое правило:
но вопрос теперь в другом, а как убрать &article=$2 ?
Объясняю почему, у меня такой скрипт:
казалось бы убрать &article=$2 легко, вот такое правило примерно выходит:
но теперь когда я открываю главную страницу, я вижу только
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?cat=$1&article=$2 [L,QSA]
но вопрос теперь в другом, а как убрать &article=$2 ?
Объясняю почему, у меня такой скрипт:
if (isset($_GET['cat']) and isset($_GET['article']))
{
echo "categories with articles";
}
elseif (isset($_GET['cat']) and !isset($_GET['article']) or empty($_GET['article']))
{
echo "it's Only categories";
}
else
{
echo "main.page";
}
казалось бы убрать &article=$2 легко, вот такое правило примерно выходит:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?cat=$1&article=$2 [L,QSA]
RewriteRule ^([^/]*)$ index.php?cat=$1 [L]
но теперь когда я открываю главную страницу, я вижу только
Цитата |
it's Only categories |
т.е. правило в буквальном смысле сбивает мне главную страницу, как этого избежать?
Спустя 14 часов, 12 минут, 15 секунд (8.07.2012 - 07:56) Stasonix написал(а):
Уже не знаю что и делать, может я с самого начала все неправильно задумал, создал test.loc.rar для примера, там одно правило срабатывает, а второе нет, я его закомментил, так как оно делает редирект главной страницы, а по сути нужно то же что и с ссылкой на статью делать.
Спустя 22 минуты, 40 секунд (8.07.2012 - 08:18) Stasonix написал(а):
ууу, походу у меня только такой выход:
Только теперь при создании категории прийдется на лету .htaccess переписывать в php, интересно это вообще реально и не слетит ли сайт при этом?
RewriteRule ^php|jquery|ajax$ index.php?cat=$1 [L]
Только теперь при создании категории прийдется на лету .htaccess переписывать в php, интересно это вообще реально и не слетит ли сайт при этом?
Спустя 9 минут, 53 секунды (8.07.2012 - 08:28) vital написал(а):
Единственный нормальный роут это
RewriteRule .* index.php?params=$i [L,NC,QSA]
и разбор роута в $params в index.php.
Все остальное от лукавого. Сделайте так и не дурите голову ни себе ни другим.
RewriteRule .* index.php?params=$i [L,NC,QSA]
и разбор роута в $params в index.php.
Все остальное от лукавого. Сделайте так и не дурите голову ни себе ни другим.
Спустя 13 минут, 22 секунды (8.07.2012 - 08:42) Stasonix написал(а):
RewriteRule .* index.php?params=$i [L,NC,QSA]
при
if (!isset($_GET['params']))
{
echo "not isset params <br />";
echo "<a href='php'>php</a>";
}
else
{
echo "params is TRUE <br />";
$params = $_GET['params'];
echo "<pre>";
print_r($params);
}
выводит всегда params is TRUE и $i, не пойму немного. все что мне надо, так это $_GET['cat'] получить.
Спустя 12 минут, 25 секунд (8.07.2012 - 08:54) Stasonix написал(а):
просто у меня все самые главные события (дей-я) происходят в файле index.php, других файлов просто нету, есть пару ссылок, одна выводит саму статью, другая только название категории. естественно это все легко делается при обычных url'ах, т.е. index.php?cat=php?article=arrays и index.php?cat=php, эти геты легко передаются (без rewriteRules) и с ними можно делать все что хочешь, но url тогда в адресной строке выглядит как-то не оч, вот и пытаюсь "преобразить".
Спустя 1 час, 11 минут, 5 секунд (8.07.2012 - 10:05) Stasonix написал(а):
все, закрываю тему, дей-но лучше одну строку анализировать:
а в index.php уже explode'ить $_GET['params'];
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php?params=$1 [L]
а в index.php уже explode'ить $_GET['params'];
Спустя 21 минута, 39 секунд (8.07.2012 - 10:27) killer8080 написал(а):
<IfModule mod_rewrite.c>
# включаем реврайты
RewriteEngine On
# если запрошенный урл не является файлом
RewriteCond %{REQUEST_FILENAME} !-f
# если запрошенный урл не является директорией
RewriteCond %{REQUEST_FILENAME} !-d
# все несуществующие запросы направляем в index.php
# QSA нужен для того чтоб не потерять реальные гет параметры, если они были в запросе
RewriteRule .* index.php [L,QSA]
</IfModule>
Я в упор не понимаю, зачем нужно плодить искусственный гет параметр, когда можно работать напрямую с $_SERVER['REQUEST_URI']?
Спустя 3 минуты, 18 секунд (8.07.2012 - 10:30) Stasonix написал(а):
$_SERVER['REQUEST_URI']?


Спустя 1 минута, 52 секунды (8.07.2012 - 10:32) killer8080 написал(а):
Цитата (Stasonix @ 8.07.2012 - 10:30) |
$_SERVER['REQUEST_URI']? |
а что тебя так удивило?

Спустя 2 минуты, 46 секунд (8.07.2012 - 10:35) Stasonix написал(а):
Я про него вообще забыл, читал в книгах, но так и не использовал, не обращал просто внимания. Упустил это из виду, и через черный ход делаю.
Спустя 2 минуты, 31 секунда (8.07.2012 - 10:37) killer8080 написал(а):
Цитата (Stasonix @ 8.07.2012 - 10:35) |
Упустил это из виду, и через черный ход делаю. |
бывает
