|
|
|
|
|
для: xx7
(13.01.2009 в 00:01)
| | >просто можно будет набрать адрес http://domain.adres/add/rewrite/1/2/?escho=5
Все поняла и проверила. Получилось.
Спасибо. Тема закрыта. | |
|
|
|
|
автор: xx7 (13.01.2009 в 00:11) |
|
|
для: xx7
(13.01.2009 в 00:01)
| | что-то опять меняют в скриптах форума | |
|
|
|
|
автор: xx7 (13.01.2009 в 00:01) |
|
|
для: Лена
(12.01.2009 в 23:22)
| | не совсем.
просто можно будет набрать адрес http://domain.adres/add/rewrite/1/2/?escho=5
и запрос преобразуется в http://domain.adres/add/rewrite.php?page_id=1&foto=2&escho=5
можно конечно сделать например ^rewrite/([0-9]+)/([A-Za-z]+_[0-9]+)/?([0-9]+)?/?$
и принимать запросы как с двумя несуществующими названиями дирректорий , так и с тремя, но это уже другая история :) | |
|
|
|
|
|
|
|
для: xx7
(12.01.2009 в 22:19)
| | Спасибо вам большое за помощь.
>и насчёт QSA, незнаю бывают-ли нужны ещё другие параметры вашему rewrite.php :)
Подождите. Давайте разберемся. Может, оно мне не нужно. Другие параметры, как я поняла, это если в мой запрос будут добавляться еще переменные, типа: rewrite.php?page_id=$1&foto=$2&text=$2. Так или не правильно? | |
|
|
|
|
автор: xx7 (12.01.2009 в 22:19) |
|
|
для: Лена
(12.01.2009 в 19:50)
| | Теперь наверное только стоит убрать [R] ,)
и насчёт QSA, незнаю бывают-ли нужны ещё другие параметры вашему rewrite.php :)
можно теперь ещё попробовать влепить cookie клиенту , так неосторожно набравшему именно ненастоящий адресс , например так
Options +FollowSymlinks
RewriteEngine On
RewriteBase /add/
RewriteRule ^rewrite/([0-9]+)/([_A-Za-z0-9]+)/?$ rewrite.php?page_id=$1&foto=$2 [L,QSA,CO=yes:popal:domain.adres:1440:/]
|
только добавил /? , чтобы адрес мог заканчиваться на слэш
И почему-то на денвере ничего не смог добиться , не cookie послать , не переменную окружения установить [E=X_PARAM:1]
(Впринципе это может быть как вариант отсеять вызывающих прямой адрес)
на хостинге работает | |
|
|
|
|
|
|
|
для: xx77
(12.01.2009 в 17:28)
| | >и безо всяких Cond :)
Ладно, сделаю, как вы говорите:
RewriteEngine on
RewriteBase /add/
RewriteRule ^rewrite/([0-9]+)/([_A-Za-z0-9]+)$ rewrite.php?page_id=$1&foto=$2 [L,QSA,R]
|
А Cond оставлю про запас :) | |
|
|
|
|
|
|
|
для: Лена
(12.01.2009 в 15:33)
| | похоже совсем ничего уже не понимаю ,) зачем делать ЧПУ такое
, что смогут понять , какое оно не простое У ?
Уберайти этот вопрос оттуда, и всё станет просче , и безо всяких Cond :)
Там кстати не обозначено даже ^ и/или $, b и эти цифра и слово будут искаться не только там где должны-бы. могувт даже если запрос будет таким http://example.org/add/rewrite.php?br=opera+9/27+kruto
Для чего Вам такие запросы ?
пусть лучше фильтруются такие которые просто http://example.org/add/9/27/?zdes._tozhe_mozhno_dobavit.
и там где RewriteRule ^rewrite\.php?$ , p? означает что 'p' или есть , или её нет :) | |
|
|
|
|
|
|
|
для: Лена
(12.01.2009 в 15:33)
| | вопрос не является необходимым условием при применении метода GET.
В ЧПУ обычно вопросов не оставляют.
В чем проявляется удобство пользователя - мне не понять. Но это субъективно.
В остальном - согласен. | |
|
|
|
|
|
|
|
для: Trianon
(12.01.2009 в 11:11)
| | >этот тест не от того метода.
Почему?
>в ссылке знак вопроса.
В ссылке знак вопроса, который показывает, что дальше идет запрос, который передается с помощью GET-метода.
Вообще-то с этой "переделкой" ссылок с одной стороны - для пользователя это удобно, с другой стороны, тот, кто пишет скрипт, может здорово запутаться. Вот, например, есть у меня куча модулей, которые подключаются в зависимости от полученных гет-переменных. И есть у меня ссылки вида: ?23/24/25/26, плюс есть один файл со всеми правилами модреврайта. И как я смогу увидеть, что ссылка ?23/24/25/26 подчиняется какому-то конкретному правилу? Как я смогу увидеть, что вот эта ссылка, допустим, посылает гет-параметр page-id? Получается, чтобы не запутаться, нужно в каждую отдельную папку(папку, где содержатся все скрипты одного модуля) класть одно правило модреврайта, чтобы было видно, какие гет-переменные я получаю. | |
|
|
|
|
|
|
|
для: xx7
(12.01.2009 в 01:19)
| | [R] сделала, теперь вижу, куда ведет ссылка. :)
Вот это у меня получилось(модуль работает в конкретной папке):
Options +FollowSymlinks
RewriteEngine on
RewriteBase /add/
RewriteRule ^.htaccess$ - [F]
RewriteCond %{QUERY_STRING} ([0-9]+)/([_A-Za-z0-9]+)
RewriteRule ^rewrite\.php?$ rewrite.php?page_id=%1&foto=%2 [L,R]
|
А вот ваш вариант с [QSA] почему-то не получается. | |
|
|
|
|