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

Главные вкладки

Аватар пользователя clubwave.ru clubwave.ru 5 февраля 2007 в 14:08

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

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

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

Комментарии

Аватар пользователя Dan Dan 6 февраля 2007 в 5:17

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

Аватар пользователя clubwave.ru clubwave.ru 6 февраля 2007 в 11: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 это сделать проще, но я всеравно пока не знаю как..

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 6 февраля 2007 в 18:07

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


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

Аватар пользователя clubwave.ru clubwave.ru 6 февраля 2007 в 18:09

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

Аватар пользователя clubwave.ru clubwave.ru 6 февраля 2007 в 18:46

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

Аватар пользователя clubwave.ru clubwave.ru 9 февраля 2007 в 10: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/хх

Аватар пользователя axel axel 9 февраля 2007 в 11:27

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

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

Аватар пользователя clubwave.ru clubwave.ru 9 февраля 2007 в 11:03

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

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

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

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

Аватар пользователя clubwave.ru clubwave.ru 9 февраля 2007 в 11:32

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

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

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

Аватар пользователя clubwave.ru clubwave.ru 9 февраля 2007 в 11: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 axel 9 февраля 2007 в 11:39

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

Ты создаешь страницу 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 clubwave.ru 9 февраля 2007 в 11: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 moonman 9 февраля 2007 в 11:53

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

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

Аватар пользователя clubwave.ru clubwave.ru 9 февраля 2007 в 12:04

Loo12,

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

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

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

Аватар пользователя moonman moonman 9 февраля 2007 в 12:26

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

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

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

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

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

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

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

Аватар пользователя clubwave.ru clubwave.ru 9 февраля 2007 в 12:33

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

Аватар пользователя moonman moonman 9 февраля 2007 в 13:18

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

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

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

Аватар пользователя moonman moonman 9 февраля 2007 в 17:05

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

Аватар пользователя clubwave.ru clubwave.ru 13 февраля 2007 в 17:30

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

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

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

Аватар пользователя clubwave.ru clubwave.ru 14 февраля 2007 в 12: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

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

Аватар пользователя Dan Dan 15 февраля 2007 в 19:56

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

Аватар пользователя clubwave.ru clubwave.ru 16 февраля 2007 в 12: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 moonman 16 февраля 2007 в 15:58

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

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

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

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

Аватар пользователя VRaptor VRaptor 16 февраля 2007 в 15:23

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

Аватар пользователя Dan Dan 16 февраля 2007 в 18:46

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