|
|
|
| Не думал что в ближайшее время меня будет интересовать подобный вопрос, но пришлось :) У вас в статьях я почему то не нашел ничего про mod_rewrite но тем не менее - можно ли как то организовать такую штуку?
Нужно все такие ссылки (индексный файл с первым параметром с):
или
http://myurl.ru/index.php?o=...
|
переделать на:
http://myurl.ru/cat/?c=...
|
причем ссылки с другими параметрами оставить как есть, т.е. например:
или
http://myurl.ru/index.php?id=...
|
или
оставить как есть.
Большущее заранее спасибо!!! | |
|
|
|
|
|
|
|
для: Евгений Петров
(11.01.2006 в 01:01)
| | Плиз хелп. Горю! Че то я пробовал пробовал, с папками все понятно, а вот как разобрать параметры...? | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.01.2006 в 00:04)
| | Отчасти удалось что то сделать:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{QUERY_STRING} ^c=(.+)$
RewriteRule ^katalog/index.php$ /cat/index.php$1
|
Только не могли бы вы обьяснить мне что значит
и
Последнее насколько я понял убирает слеш в конце если таковой есть? | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.01.2006 в 00:35)
| | И ещё один вопросик. Это вообще я все для чего делал? У меня на сайте стоит каталог и возникла необходимость перенести его в другую папку (он был в root теперь надо в katalog/) и чтобы не потерять посещаемость прибег к такому способу. Так вот вопрос, если заменять ссылки с [r] т.е. переписывать их в адресной строке. То адрес по идее изменится но содержимое страниц останется доступным по старым ссылкам. Не повлияет ли это на поисковики? | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.01.2006 в 00:49)
| | >он был в root теперь надо в katalog/
А каталог /cat к этой задаче имеет какое-то применение?
>Не повлияет ли это на поисковики?
Ох... никто не может сказать как это на них повлияет. С одной стороны, у Вас будет стоять внешний редирект [r]. Сложно сказать, как это воспримут поисковики.... Скорее всего, все будет нормально - пройдут далее по редиректу. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(12.01.2006 в 07:25)
| | Да cat и katalog - это по сути одно и то же было :) Просто назвал в конечном итоге по другому. А нужно было ссылки вида:
http://myurl.ru/?c=... (т.е. каталог ледал в корне)
переделать на
http://myurl.ru/katalog/?c=... (физически каталог был перемещен в папку katalog и чтобы не потерять посещаемость нужно было сделать редирект на папку katalog на те же файлы) | |
|
|
|
|
|
|
|
для: Евгений Петров
(11.01.2006 в 01:01)
| | Меняем URL вида
http://myurl.ru/?c=...
и
http://myurl.ru/index.php?o=...
|
на
http://myurl.ru/cat/?c=..
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^cat(.*) /index.php$1
|
Т.е. если кто-то обратится по URL http://myurl.ru/cat/?c=.. , то этот URL не должен отвечать ошибкой, а должен скрыто перенаправить запрос на URL http://myurl.ru/?c=...
Протестировал работу URL-ов вида
http://test.ru/cat/index.php?c=value
http://test.ru/cat/?c=value
|
Таким образом, правило срабатывает только если запрос направлен на несуществующую директорию /cat и не влияет на другие URL-ы.
Но, вы написали:
>Отчасти удалось что то сделать
RewriteCond %{QUERY_STRING} ^c=(.+)$
RewriteRule ^katalog/index.php$ /cat/index.php$1
|
Т.е. исходный URL - это "katalog/index.php"? или правильной была первоначальная постановка вопроса?
Options +FollowSymlinks - разрешает переход по символическим связям. Видимо, модуль mod_rewrite как раз используется их для замены одного пути на другой. Без этой опции mod_rewrite работать не будет.
RewriteBase / - директория, относительно которой осуществляется преобразование URL.
/ - относительно коневой директории сайта. | |
|
|
|