powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
43 сообщений из 43, показаны все 2 страниц
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37866902
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ссылка получается вот такая:

mysite.loc/index.php?cat=PHP&article=obrabotka_formy

как это переделать на:

mysite.loc/php/obrabotka_formy

???
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37866947
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stasonix,

Вы хотите еще и регистр поменять на лету?
php -> PHP
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37866973
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В гугле первая ссылка)
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37866985
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

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

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ index.php?cat=$1&article=$2 [L]


дей-но регистр же может влиять. Это я к тому что оно не срабатывает. Попробую регистр снизить.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37866997
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант, можете передавать весь request-uri в гет параметре, а в скрипте его разбирать уже. Это будет более гибко.

Код: php
1.
2.
3.
4.
5.
6.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.jpg|\.jpeg|\.png|\.css|\.js|\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37866998
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то мало от этого толку от регистра, я не пойму почему генератор выдал мне .html в конце, но в принципе это не так уже и страшно как я понимаю, а страшно то что у меня mod_rewrite судя по всему вообще не работает, либо же у меня лыжи ни едут...
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37866999
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в моем варианте - его можно взять из $_SERVER
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867001
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StasonixЧто-то мало от этого толку от регистра, я не пойму почему генератор выдал мне .html в конце, но в принципе это не так уже и страшно как я понимаю, а страшно то что у меня mod_rewrite судя по всему вообще не работает, либо же у меня лыжи ни едут...
ну так вы тогда и в конце ссылки .html дописывайте, либо из регулярки выкиньте это
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867008
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

картинок там не будет.

что за...

в общем ссылка у меня на http://mysite.loc выглядит вот так:

Код: php
1.
<a href='index.php?cat=".strtolower($name)."&article=".translitIt($value)."'>".$value."</a>



все валидно, без всяких правил идет нормальный переход,

но применив правило:

Код: php
1.
2.
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?cat=$1&article=$2 [L]



Абсолютно ничего не изменилось, т.е. в адресной строке браузера так и остается:

Код: php
1.
http://mysite.loc/index.php?cat=php&article=obrabotka_formy
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867013
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

авторлибо из регулярки выкиньте это

выкинул:

Код: php
1.
2.
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\$ /index.php?cat=$1&article=$2 [L]



ничего не изменилось.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867067
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а слеш че там делает?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867069
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторАбсолютно ничего не изменилось, т.е. в адресной строке браузера так и остается:
А с чего оно должно поменяться? о_О
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867236
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть смутное подозрение что ТС решает задачу которую и решать то ему ненужно.

вопрос
mysite.loc/index.php?cat=PHP&article=obrabotka_formy
эта ссылка откуда берется?
ЧПУ на сайта обыно в противоположном направлении делают.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867332
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uу меня есть смутное подозрение что ТС решает задачу которую и решать то ему ненужно.

вопрос
mysite.loc/index.php?cat=PHP&article=obrabotka_formy
эта ссылка откуда берется?
ЧПУ на сайта обыно в противоположном направлении делают.

эта ссылка берется из сайта из корня, из того же индекса, если уже более углубиться, то из БД она берется,

и в этом index.php делаю уже контент, если она была нажата,т.е.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
	if (isset($_GET['cat']) and isset($_GET['article'])) 
	{
	
		echo $_GET['cat']. " ". $_GET['article'];
	
	}
	else
	{

		echo "<p><a href='/index.php?cat=".strtolower($name)."&article=".translitIt($value)."'>".$value."</a></p>";

	}



может в этом вся суть проблемы, естественно что если я кликну по этой ссылке, то в URL далеко ни ЧПУ отобразиться, плиз. тогда как?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867339
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stasonix,

имхо, но я еще не видел чтобы в ссылки POST запихивали, так как формы у меня нет и ничего подобного и не предрекалось, если выкручиваться таким путем.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867346
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettа слеш че там делает?

да так, http://www.generateit.net/mod-rewrite/ рулит! Но видимо не туда.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867545
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stasonixвся суть проблемы, естественно что если я кликну по этой ссылке, то в URL далеко ни ЧПУ отобразиться, плиз. тогда как?Тогда нужно сформировать ссылку как надо. mod_rewrite решает прямо противоположную задачу.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867586
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно взять какой-нибудь фреймворк и не мучиться, там обычно все реализовано в обе стороны
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867725
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

Я хочу сам сделать фреймворк как бы...

Скажем, такой себе мини-блог, хочу почувствовать просто как это делается, взяв какой-то фреймворк, коих в моем арсенале пока всего два: wordpress и kohana, я в итоге не развиваю себя как программист php (веб), чет не так выразился, в общем я хочу понять как правильно сделать то что я задумал, не глядя на фреймворки, тем более что там ООП и все такое, у меня же нет никакого ООП, просто ссылка с параметрами, которая ведет на эту же страницу, все что я хочу сделать, так это немножко видоизменить эти параметры, чтобы более привлекательнее выглядело. Из бд оно берется вообще как $name и $article, если представлю ее как

Код: php
1.
<a href="mysite.loc/$name/$article">$article</a>



то как я ее получу в этом же файле?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867778
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вордпресс - это не фреймворк
последний вопрос не понял...
а вы не поняли что такое мод реврайт для чего он нужен.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867789
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stasonix,

реврайт то написал, а ссылки формируешь по старому mysite.loc/index.php?cat=PHP&article=obrabotka_formy

формируй <a href="mysite.loc/$name/$article">$article</a> и будет все красиво

авторто как я ее получу в этом же файле?

$_GET['cat'] и другая соответственно. Ты вообще читал про чпу?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867790
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

вполне возможно. Наверное прийдется положиться на Kohana.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867800
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnogu$_GET['cat'] и другая соответственно. Ты вообще читал про чпу?

Так а как я этот $_GET['cat'] получу в этом же index.php, если этих $_GET вообще в url не будет?

Про чпу читал, видимо не понял, или понял по своему, тобишь понял что урлы можно видоизменять на более приемлимые, но не понял каким боком, на входе или на выходе, т.е. получается в моем случае надо сделать все с точностью до наоборот и вместо того чтобы убирать cat&article в modrewrite их добавлять?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867815
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stasonix,

htaccess цепляет твой урл "красивый" и передает по нему твои параметры из "не красивого". Попробуй вывести print_r($_GET); и увидишь
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867868
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SharuPoNemnoguStasonix,

htaccess цепляет твой урл "красивый" и передает по нему твои параметры из "не красивого". Попробуй вывести print_r($_GET); и увидишь

О боги! Вы услышали меня!

Дей-но! Это опыт, спасибо! Наконец-то я допер как эту кашу варить! Да со смаком!
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867879
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоило то сначала почитать, а потом делать, а не наоброт)
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37867902
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettСтоило то сначала почитать, а потом делать, а не наоброт)

Я читал, сколько можно читать, да на грабли наступил, практика она такая, может подколоть!
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37869768
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как насчет старой доброй фишки с PATH_INFO?!
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870239
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем в итоге я пришел к тому что сработало у меня такое правило:

Код: sql
1.
2.
3.
4.
5.
6.
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?cat=$1&article=$2 [L,QSA]




но вопрос теперь в другом, а как убрать &article=$2 ?

Объясняю почему, у меня такой скрипт:


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
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 легко, вот такое правило примерно выходит:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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



т.е. правило в буквальном смысле сбивает мне главную страницу, как этого избежать?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870250
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну конеш, вы все запросы перенаправляете на index.php?cat=$1

Не хотите вы слушать советов.
Я ранее порекомендовал использовать код:

Код: plaintext
1.
2.
3.
4.
5.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.jpg|\.jpeg|\.png|\.css|\.js|\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php

Ловите $_SERVER['REQUEST_URI'], смотрите что там и далее делаете уже что нужно.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870252
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо пишите внятные правила, типа

Код: php
1.
RewriteRule ^cat/([0-9]+)$ index.php?cat=$1 [L]
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870269
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

допустим у меня на странице ссылка вида:

Код: html
1.
<a href='php'>php</a>



все, больше ничего, если я по ней кликну, в адресной строке браузера должно появиться http://mysite.loc/php и ничего лишнего, но на самом деле в .htaccess прописано внятное правило :

Код: sql
1.
RewriteRule ^cat/([0-9]+)$ index.php?cat=$1 [L]



, в итоге которого я должен получить тот самый заветный $_GET['cat'], увы чего не происходит.

п.с. внятное правило немного непонятно мне в силу того что там вообще цифры делают?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870282
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это пример, чтобы показывать так:

cat/10
ну если нужно cat/php то и заменить цифры на буквы.
А так, чисто логически вы сами как думаетЕ, если вы все запросы перенаправляете на категории, то как вы будете другие страницы показывать?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870304
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettвсе запросы перенаправляете на категории

я ни все переправляю, только хочу скрытый $_GET['cat'] получить, в общем очень это все сложно так на пальцах, создал архивчик, совсем простой для примера, я думаю там понятно будет что к чему, test.loc

там одно из правил срабатывает, а другое нет.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870306
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и откуда ему знать, категория это или какая-то другая ссылка?
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870310
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettНу и откуда ему знать, категория это или какая-то другая ссылка?

Код: php
1.
elseif (isset($_GET['cat']) and !isset($_GET['article']))



вот отсюда хотя бы. Ну статью он же как-то открывает (нормально обрабатывает).
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870314
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870320
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett


хорошо хоть так, некоторые бы тут уже censored опрелюдовали, ты самый терпеливый Hett, спасибо тебе.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870321
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stasonixв общем в итоге я пришел к тому что сработало у меня такое правило:

+
Код: sql
1.
2.
3.
4.
5.
6.
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?cat=$1&article=$2 [L,QSA]




но вопрос теперь в другом, а как убрать &article=$2 ?

Объясняю почему, у меня такой скрипт:


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
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 легко, вот такое правило примерно выходит:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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
т.е. правило в буквальном смысле сбивает мне главную страницу, как этого избежать?

elseif (isset($_GET['cat']) and (!isset($_GET['article']) or empty($_GET['article'])))
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870325
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpz, да ни в этом суть, надеюсь мой архив не сложно скачать.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870326
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще попахивает глобальными переменными (наверно упустил я это).
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37870327
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StasonixА вообще попахивает глобальными переменными (наверно упустил я это).

хотя... нет, с этим ничего толкового в голову ни лезет.
...
Рейтинг: 0 / 0
Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
    #37921268
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хочу создавать новую, как добавить сюда третий параметр?

Код: sql
1.
2.
3.
4.
5.
6.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]*).html$ /?cat=$1 [L]
RewriteRule ^([a-zA-Z]*)/([a-zA-Z]*)\.html$ /?cat=$1&page=$2 [QSA,L]



в общем надо чтобы это осталось, но прибавился еще третий параметр "art"

Код: sql
1.
RewriteRule ^([a-zA-Z]*)/([a-zA-Z]*)/([a-zA-z]*)\.html$ /?cat=$1&page=$2&art=$3 [QSA,L]



Так правильно?
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Mod_rewrite, Как изменить вид ссылки типа index.php?cat=php ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]