siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009

RewriteRule ^([^/]+/)?showthread.php/.+ /$1 [R=301,L]

Вот тут описаны все возможности стандартного и не стандартного селекта http://dev.mysql.com/doc/refman/5.0/en/select.html (судя по тому, что написан он с большим регистром думаю что речь все же о селекте бд)

GoRSS:
Т.е. я могу запрос вида

Перечитайте еще раз все вышесказанное мной и другими пользователями, а то у меня такое ощущение что вы вообще читаете через слово каждого четвертого сообщения. И сделайте это минимум раз пять.

GoRSS:
сократить до

До чего можно сократить, можно увидеть в примере выше.

GoRSS:
По последней из них идет запрос к базе SELECT * FROM ... WHERE id='$place_id'.

У вас $place_id = '(.)' какой тут еще может быть запрос? С таким значением, или с ним или без него результат будет тот же. Его следует выкинуть из реврайта, вам уже десятый раз об этом говорят.

GoRSS:
Если бы я написал RewriteRule ^([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+).html$ place.php?placesef=$1&place_id=$3&art=$4&artsef=$2 [QSA,L] не односиськой, а $номер, это значение появилось бы в урле? Экспериментировал, пока не ушло лишнее из урла.

Из какого урла? Для начала нужно понять, что есть адрес запроса и есть адрес реврайта. В адресе запроса (первая часть реврайта) ничего не появляется кроме того, что запросил пользователь, адрес реврайта - это собственно туда, куда нужно перенаправить запрос. И лишнее там ничего не может появляться, если эти данные небыли переданы пользователем. Включите уже мозг, и поймите наконец, что если значение place_id отсутствует в адресе запроса, значит и передавать дальше уже нечего.

$n - это ссылка на подмаску в регулярном выражении. Откуда здесь $3 и $4 если у вас только две группы?

i-work:
Объясните мне дураку зачем в

Низачем. Автор либо сам не понимает зачем (хотя ему об этом говорили), либо это он таким интересным способом пытается объявить эти переменные в коде. Но вопрос, зачем? Значение абсолютно никакое, с таким же успехом можно просто тупо их убрать. Имхо, автор явно не хочет слушать то, что выходит за рамки его понимания.

RewriteRule ^([-a-zA-Z0-9_]+)/$ place.php?placesef=$1&place_id=(.) [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/photos.html$ place.php?placesef=$1&place_id=(.)&photo [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/karta.html$ place.php?placesef=$1&place_id=(.)&map [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/pogoda.html$ place.php?placesef=$1&place_id=(.)&pogoda [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/svodka.html$ place.php?placesef=$1&place_id=(.)&svodka [QSA,L]
RewriteRule ^([-a-zA-Z0-9_]+)/video.html$ place.php?placesef=$1&place_id=(.)&video [QSA,L]


RewriteRule ^([\w\-]+)/(?:(\w+)\.html)?$ place.php?placesef=$1&$2 [QSA,L]

Добавить после RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^place_id=\d+&placesef=(.*?)(?:&|$)

RewriteRule ^place\.php /%1/? [R=301,L]

nezabor:
вот это не подходит выводит буквы

Чего выводит? Но для захвата да оно не подходит потому что используется повторения шаблона, только для поиска совпадений. Но никакие буквы там по идее быть не должно.

juristcomp,

RewriteCond %{QUERY_STRING} ^id=3363&tovar_1=8495&type=3$

RewriteRule ^index\.php$ /toindex.php?product=363 [L,R=301]

/\b(\d{1,3}\.){3}\d{1,3}\b/

RewriteRule ^(.+)\.html&limit=(\d+)&(?:limit)?start=(\d+)$ /$1.html?limit=$2&start=$3 [L,R=301]

Не "показывать ид" при этом "сохранить ид" который еще и является динамичным, через htaccess не сделать. Либо один статический ид; либо ид берется из адреса запроса; либо никакого ид нет (что собственно выше и есть в реврайте - ибо вам ид в чпу не нужен). А то, как у вас "решена" проблема (прописан параметр place_id=(.)) ничем не отличается от того варианта что я привел, кроме отсутствия бессмысленного в данном случае параметра place_id с какой-то хренотенью в качестве значения.

Всего: 6568