| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > как сделать редирект и убрать вложенность из url ч |
| Автор: listratov 11.7.2013, 09:20 |
| У меня имеется site.ru/catalogue/gos/nalog/lk/ и мне нужно сделать, что бы ссылки имели вид site.ru/gos/nalog/lk/ site.ru/gos/nalog/ site.ru/gos/ Т.е. выкинуть /catalogue/ Используя так RewriteRule ^gos/(.*?)/(.*?)$ catalogue/gos/$1/$2 [L] и так RewriteRule ^(.*?)gos/(.*?)$ $1catalogue/gos?$2 работает, Но мне нужно, чтобы /gos/ подставлялась тоже маркером типа ^(.*?)/(.*?)/(.*?)$ catalogue/$1/$2/$3 [L] <- НО так не работает Подскажите, как сделать? |
| Автор: listratov 11.7.2013, 10:51 |
| При ^(.*)$ catalogue/$1 Не открывается адрес site.ru/catalogue C одним слешем тоже #RewriteRule ^(.*?)(.*?)/(.*?)$ $1catalogue/$2?$3 или #RewriteRule ^(.*?)(.*?)/(.*?)$ $1catalogue/$2/$3 или #RewriteRule ^(.*?)(.*?)/(.*?)$ catalogue/$1/$2/$3 Все не работает |
| Автор: Arantir 11.7.2013, 11:20 | ||
Надеюсь, знак комментария у Вас в примерах - это только опечатка. С ним то точно работать не будет. Вам только /gos/* перенаправлять нужно? Тогда просто
|
| Автор: listratov 11.7.2013, 11:43 |
| Знак комментария не опечатка, а просто знак комментария, в рабочем примере, конечно его нет. к сожалению мне не только gos/ нужно там таких как gos/ более 300 и расширяется... Вообще в идеале мне нужно вообще редирект с /catalog/podcatalog/podpodcatalog/f1 на /podcatalog/podpodcatalog/f1 /catalog/podcatalog/podpodcatalog/ на /podcatalog/podpodcatalog/ /catalog/podcatalog/ на /podcatalog/ /catalog/ и все, что после /catalog/ шло бы маркерами, т.к. там их мильон разных подкаталогов и каталогов |
| Автор: Arantir 11.7.2013, 12:03 | ||
Только вот тогда на сайте, по сути, будут работать только скрипты для /catalogue/*, так как все на него перенаправляется. Проблема в том, что перенаправление идет задом наперед. То есть, если есть некий /something/, который не должен перенаправляться на /catalogue/something/, то иначе, как проверить все сотни вариантов, серверу не узнать, должен или не должен он туда перенаправляться. |
| Автор: listratov 11.7.2013, 14:24 | ||||
Эх... какой бы оптимальный вариант... что бы все работалo и редиректило...[R,L].... |
| Автор: Gromdron 13.7.2013, 10:57 |
| У вас Битрикс ? Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51de4ece6ccc19464b000002#findElement_E7045_51e108596ccc19802b002c33_0 |
| Автор: listratov 16.7.2013, 08:29 | ||
umi cms |
| Автор: listratov 16.7.2013, 10:15 | ||
Грубо говоря сделал вот так
Это работает для всех подкаталогов то есть /catalogue/one/two/three/ Но так же будет работать и для ссылок, которых нет в правиле !/catalogue/|/news/|/go/|.... Не добавлять же каждый раз в RewriteCond %{REQUEST_URI} новую ссылку... Нужно что бы выполнялось только для /catalogue/one/two/three/, /catalogue/one/, /catalogue/one/two/ а для /catalogue/ не выполнялось правило. и для всех остальных, у которых нет в начале /catalogue/.. то же не выполнялось А редирект делаю в контроллере |