заменить урл через .htaccess

Прислано: clubwave.ru

пн, 05/02/2007 - 11:08

Другие статьи по теме:

требуется, чтобы вместо адреса http://live-in-drive.ru/taxonomy/term/13 отображался адрес http://live-in-drive.ru/audi

причём модуль path по некоторым причинам использовать не получается (поскольку сам адрес taxonomy/term/13 забит как путь для определённой страницы)

думаю сделать это не сложно.. но незнаю как

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано streptokok в вт, 06/02/2007 - 01:02.

модуль pathauto подойдет?
http://drupal.ru/node/1381


Опубликовано Dan в вт, 06/02/2007 - 02:17.

> path по некоторым причинам использовать не получается (поскольку сам адрес taxonomy/term/13 забит как путь для определённой страницы)
почему не подойдёт? можно же делать несколько алиасов для одной страницы?


Опубликовано clubwave.ru в вт, 06/02/2007 - 08:05.

а как можно делать несколько алиасов для одной страницы?

почему не подойдёт path а тем более pathauto постараюсь объяснить..

есть новости относящиеся к категории AUDI c системным адресом - taxonomy/term/13
внутри самой новости выводятся категории, к которым относиться новость, в данном случае AUDI
но при переходе по адресу - taxonomy/term/13 мы видем все материалы, относящиеся к данной категории, что не есть гуд, поскольку эту страницу хотелось бы сформировать в виде простой страницы, модулем page и довешать нужные блоки уже к ней..
так вот создаём эту самую страницу об ауди, в путь прописываем - taxonomy/term/13 и всё нормально работает, но вот если добавить псевдоним - taxonomy/term/13 = audi в самой новости мы видем ссылку на категорию AUDI в ввиде заданного псевдонима, тобишь - audi и при переходе по которой снова выводятся все материалы относящиеся к данной категории, а страницы с установленным путём - taxonomy/term/13 не показывается..

вот, жду помощи.. как цеплять несколько алиасов интересно, но мне кажется, что при помощи .htaccess это сделать проще, но я всеравно пока не знаю как..


Опубликовано clubwave.ru в вт, 06/02/2007 - 10:49.

товарисчи, хэлп.. мучает вопрос


Опубликовано clubwave.ru в вт, 06/02/2007 - 13:52.

блин ну как в .htaccess заменить - taxonomy/term/13 на - audi ???


Опубликовано vadbars@drupal.org в вт, 06/02/2007 - 15:07.

В сети есть автоответчики - google.com или ya.ru
Наберите htaccess и они вам все расскажут про него :)


Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы? :) Полный русский перевод Drupal 5.x и еще некоторых модулей.


Опубликовано clubwave.ru в вт, 06/02/2007 - 15:09.

ну уж насчёт ya.ru это вы загнули.. выдаст столько всего "полезного" запаришься разгребать.. ну а если знакомы с понятием, неужели сложно пример строчку привести?


Опубликовано vadbars@drupal.org в вт, 06/02/2007 - 15:28.

Есть даже сайт http://htaccess.ru


Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы? :) Полный русский перевод Drupal 5.x и еще некоторых модулей.


Опубликовано clubwave.ru в вт, 06/02/2007 - 15:46.

это не сайт а уродское вики, просмотрев всё что там есть, ответа на простейший вопрос не нашёл.. а изучать весь принцип функционирования дабы узнать одну строчку времени нет.. может кто поможет? ну хоть кто-нибудь!?


Опубликовано clubwave.ru в ср, 07/02/2007 - 13:31.

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^audi$ $1taxonomy/term/13$2

в чём тут ошибка?


Опубликовано clubwave.ru в чт, 08/02/2007 - 10:07.

Господа! неужели данная задача невыполнима?


Опубликовано moonman в чт, 08/02/2007 - 14:20.

>>>clubwave.ru

Попробуй:
RewriteRule ^audi([^/]*)(/?)+$ /taxonomy/term/13


Опубликовано clubwave.ru в пт, 09/02/2007 - 07:49.

Loop12, так тоже не работет..

в хостинге подсказали, что возможно, поскольку mod_rewrite уже задействован в создании урла - taxonomy/term/13 из ?q=taxonomy/term/13, то стоит попробовать именно подменять второй урл.. тоесть если взять твой пример, то что-то вроде - RewriteRule ^audi(^/*)(/?)+$ ?q=taxonomy/term/13 или RewriteRule ^audi(^/*)(/?)+$ /?q=taxonomy/term/13 но и так и так тоже никакого результата..

у меня недостаточно знаний в .htaccess поэтому хочется вообще узнать как правильно записывать подмену урл.. в хостинге посоветовали так:

RewriteRule audi ?q=taxonomy/term/13

тоже никакого результата..

а в самом друпале как то можно ещё один алиас прописать? или два алиаса к одной странице? глупость, правда на мой взгляд.. но всёже в начале топика описал для чего это нужно.. очень не хочется видеть весь сайт с красивыми урлама, а самые интересные страница с - taxonomy/term/хх


Опубликовано clubwave.ru в пт, 09/02/2007 - 08:03.

это последнее, что написали в службе поддержки -

Здравствуйте!

Вы можете почитать документацию к данному модулю.

Модуль у нас работает, но мы не можем разбираться в Ваших скриптах.


Опубликовано moonman в пт, 09/02/2007 - 08:24.

Попробуй ещё так:

RewriteEngine On
RewriteBase /
RewriteRule ^audi(/?)+$ /taxonomy/term/13


Опубликовано clubwave.ru в пт, 09/02/2007 - 08:26.

не работает


Опубликовано axel в пт, 09/02/2007 - 08:27.

Вообще в 5.0 можно прописать несколько алиасов.

--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!


Опубликовано moonman в пт, 09/02/2007 - 08:32.

clubwave.ru

У меня оба варианта работают на swab.ru
Обратись к хостеру, должно работать.


Опубликовано clubwave.ru в пт, 09/02/2007 - 08:32.

честно? и как это реализовано? допустим я прописываю для ноды - алиас - taxonomy/term/13 дабы ссылка, на терм автоматом вела на нужную мне страницу, а потом через модуль path добавляю - существующий системный путь - taxonomy/term/13 а алиас - audi

будет такая конструкция работать? тоесть при выводе ссылок на категорию внутри ноды ссылка будет вида - /audi и весть на нужную мне ноду с алиасом - taxonomy/term/13

в 4.7 такая конструкция не работает..


Опубликовано clubwave.ru в пт, 09/02/2007 - 08:36.

Loop12, а в чём заключается работа этих вариантов?

правильно ли я понимаю, что после этой записи -

RewriteBase /
RewriteRule ^audi(/?)+$ /taxonomy/term/13

при наборе адреса taxonomy/term/13 мы попадаем на /audi ??может я не туда пишу это?

вот мой .htaccess-

#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.

Order deny,allow
Deny from all

# Set some options.
Options -Indexes
Options +FollowSymLinks

# Customized error messages.
ErrorDocument 404 /index.php

# Set the default handler.
DirectoryIndex index.php

# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.

# PHP 4, Apache 1

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0

# PHP 4, Apache 2

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0

# PHP 5, Apache 1 and 2

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0

# Reduce the time dynamically generated pages are cache-able.

ExpiresByType text/html A1

# Various rewrite rules.

RewriteEngine on
RewriteBase /

RewriteRule ^audi(/?)+$ /taxonomy/term/13

# If your site can be accessed both with and without the prefix www.
# you can use one of the following settings to force user to use only one option:
#
# If you want the site to be accessed WITH the www. only, adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
# RewriteRule .* http://www.example.com/ [L,R=301]
#
# If you want the site to be accessed only WITHOUT the www. , adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
# RewriteRule .* http://example.com/ [L,R=301]

# Modify the RewriteBase if you are using Drupal in a subdirectory and
# the rewrite rules are not working properly.
#RewriteBase /drupal

# Rewrite old-style URLs of the form 'node.php?id=x'.
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{QUERY_STRING} ^id=([^&]+)$
#RewriteRule node.php index.php?q=node/view/%1 [L]

# Rewrite old-style URLs of the form 'module.php?mod=x'.
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{QUERY_STRING} ^mod=([^&]+)$
#RewriteRule module.php index.php?q=%1 [L]

# Rewrite current-style URLs of the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

php_value memory_limit 32M
# $Id: .htaccess,v 1.73 2006/04/14 09:08:26 killes Exp $


Опубликовано axel в пт, 09/02/2007 - 08:39.

Че-то заморочка вокруг простой проблемы :) Давай еще раз по порядку.

Ты создаешь страницу node/???, к ней вешаешь алиас taxonomy/term/13. И хочешь получить второй алиас audi к этой же странице. Вопрос, какой был изначальный адрес страницы? Rewrite нужн писать к нему. Попробуй:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Rewrite audi ?q=node/xxx [L]

вместо xxx - номер этой своей ноды, для теста пока без ^ и $
это надо вставить после RewriteBase и перед # Rewrite current-style URLs of the form 'index.php?q=x'.

--
Администратор сайта «Drupal — Россия»
на вопросы по Drupal отвечаю только на форумах, не пишите в почту и приватом!


Опубликовано clubwave.ru в пт, 09/02/2007 - 08:50.

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule audi ?q=node/1326

в таком виде работает, и выдаёт обе страницы и - audi и node/1326
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Rewrite audi ?q=node/1326 L

выдаёт ошибку 500 на всём сайте


Опубликовано moonman в пт, 09/02/2007 - 08:53.

----------
при наборе адреса taxonomy/term/13 мы попадаем на /audi ??может я не туда пишу это?
--------

Нет!
При наборе адреса /audi мы попадаем taxonomy/term/13
Т.е. ВМЕСТО taxonomy/term/13 это /audi


Опубликовано clubwave.ru в пт, 09/02/2007 - 09:04.

Loo12,

тоесть с точки зрения системы мы находимся по адресу - taxonomy/term/13 а в адресной строке показывается как - audi?

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

а эти строки что означают? ты их не пишешь?


Опубликовано moonman в пт, 09/02/2007 - 09:26.

тоесть с точки зрения системы мы находимся по адресу - taxonomy/term/13 а в адресной строке показывается как - audi?

Да. Это простая подмена.

а эти строки что означают? ты их не пишешь?

Это у знатаков друпало надо спросить :) там много чего написано...

После того вроде нужно:
Order deny,allow
Deny from all

Прописать это:
RewriteEngine On
RewriteRule ^audi(/?)+$ /taxonomy/term/13

И тогда по адресу /audi ты будешь видеть то что находится по этому адресу taxonomy/term/13


Опубликовано clubwave.ru в пт, 09/02/2007 - 09:32.

до конца не понял.. ну да ладно..

а вот это что значит - (/?)+$ ?


Опубликовано clubwave.ru в пт, 09/02/2007 - 09:33.

и как мне теперь сделать, чтобы при переходе по node/1326 (теперь нужен этот адрес вместо taxonomy/term/13) не просто открывался тотже материал, что и по адресу audi а открывался именно урл - audi ?


Опубликовано moonman в пт, 09/02/2007 - 10:18.

redirect /audi http://бла-бла-бла.ru/node/1326

RedirectMatch audi/.*$ http://бла-бла-бла.ru/node/1326

RedirectMatch audi^/audi$ http://бла-бла-бла.ru/node/1326


Опубликовано clubwave.ru в пт, 09/02/2007 - 10:24.

все 3 писать на каждый такой урл?


Опубликовано moonman в пт, 09/02/2007 - 10:30.

Любой.
Но лучше этот вроде RedirectMatch


Опубликовано clubwave.ru в пт, 09/02/2007 - 11:07.

третий?


Опубликовано moonman в пт, 09/02/2007 - 12:11.

Попробуй 2 и 3


Опубликовано clubwave.ru в пт, 09/02/2007 - 12:38.

и 2 и 3, или один из них?


Опубликовано moonman в пт, 09/02/2007 - 14:05.

На выбор.
Пробуй какой подойдёт.
Они все рабочие.
Просто RedirectMatch может лучше подойти чем просто redirect


Опубликовано clubwave.ru в пт, 09/02/2007 - 14:13.

круто! попробую.. но пака ненарадуюсь что так всё работает - http://live-in-drive.ru/audi

может и не надо того редиректа, как думаете?


Опубликовано clubwave.ru в вт, 13/02/2007 - 14:30.

а как сделать, чтобы при переходе на урл http:/live-in-drive.ru/AUDI тоже показывалась эта страничка - http://live-in-drive.ru/audi ??

и при переходе по адресу ."Audi"
и "aUdI"

тобишь как сделать урл с любым регистром?


Опубликовано kiev1 в вт, 13/02/2007 - 18:21.

а как-бы одной строчкой заменить node на например content ?


Опубликовано clubwave.ru в ср, 14/02/2007 - 09:48.

как изменить данную строчку - RewriteRule ^bmw(/?)+$ ?q=node/2451

чтобы страница была доступна и по адресу:

http://live-in-drive.ru/bmw

и по адресу

http://live-in-drive.ru/BMW

и по адресу

http://live-in-drive.ru/Bmw

и по адресу

http://live-in-drive.ru/bMw

тоесть как сделать, чтобы неважен регистр буков был..??


Опубликовано clubwave.ru в ср, 14/02/2007 - 15:10.

почемуто кажется это не сложно, учитывая, что с остальным справились..


Опубликовано clubwave.ru в чт, 15/02/2007 - 09:21.

хэлп, товарищи!


Опубликовано Dan в чт, 15/02/2007 - 16:56.

> а изучать весь принцип функционирования дабы узнать одну строчку времени нет..
нет времени говоришь?....
на решение проблемы ты уже потратил полторы недели.
может пора RTFM?


Опубликовано clubwave.ru в пт, 16/02/2007 - 09:41.

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

как изменить данную строчку - RewriteRule ^bmw(/?)+$ ?q=node/2451

чтобы страница была доступна и по адресу:

http://live-in-drive.ru/bmw

и по адресу

http://live-in-drive.ru/BMW

и по адресу

http://live-in-drive.ru/Bmw

и по адресу

http://live-in-drive.ru/bMw

тоесть как сделать, чтобы неважен регистр буков был..??

изучать .htaccess и ставить эксперименты, сейчас возможности нет..

если можете помочь, буду очень благодарен..


Опубликовано moonman в пт, 16/02/2007 - 12:58.

Попробуй так:

RewriteRule ^bmw(/?)+$ ?q=node/2451 [NC]

Вместо NC поставь NC заключённый в квадратные скобки.

Этот грёбаный друпал уже достал со своеми проблемами по невозможности нормально постить символы кода...
Приходся извращаться чтобы обяснить что я запости.......


Опубликовано VRaptor в пт, 16/02/2007 - 12:23.

Прочитать в инете какую нибудь статью про rewrite займет 20 минут. И при этом можно узнать значительно больше, чем на форуме за 2 недели.


Опубликовано clubwave.ru в пт, 16/02/2007 - 13:24.

спасибо!! то что нужно!!


Опубликовано clubwave.ru в пт, 16/02/2007 - 13:25.

а ведь согласитесь, проще написать, что в конце нужно добавить NC в квадратных скобках..!

ещё раз спасибо!


Опубликовано Dan в пт, 16/02/2007 - 15:46.

нет, не проще - следующую проблему тебе тоже придётся решать неделю и зависить от других.
или это твой последний сайт и последний htaccess?