.htaccess (mod rewrite) и изображения

gamepark
На сайте с 09.02.2007
Offline
124
2336

Вообщем при смене хостинга на внутренних страницах сайта пропали элементы оформления выполненные через картинки.

Проблема в том, что организованы ЧПУ через mod rewrite и при переходе на внутренние страницы (site.ru/cat/234) адреса для картинок принимают вид site.ru/cat/images/kartinka.jpg) естественно их там нет т.к. правильный адрес site.ru/images/kartinka.jpg, в коде прописаны относительные адреса (/images/kartinka.jpg).

На старом хостинге такого не было все нормально обрезалось до корня. Как поправить?

хтацес


RewriteEngine on
RewriteBase /


RewriteCond %{HTTP_HOST} ^www.site.ru
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

# /category/123/12 => /viewcategory?id=123&Page=12
RewriteRule ^(.*)cat/([0-9]+)/([0-9]+|all)$ $1/viewcategory.php?id=$2&Page=$3

# /category/123 => /viewcategory?id=123
RewriteRule ^(.*)cat/([0-9]+)$ $1/viewcategory.php?id=$2

# /archive/123 => /shownew_arch?Page=123
RewriteRule ^(.*)arc/([0-9]+)$ $1/shownew_arch.php?Page=$2

RewriteRule ^(.*)cat/([0-9]+)/(.*)$ $1/$3
RewriteRule ^(.*)cat/(.*)$ $1/$2
RewriteRule ^(.*)arc/(.*)$ $1/$2

ErrorDocument 500 /
ErrorDocument 404 /
ErrorDocument 403 /
ErrorDocument 401 /

Skom
На сайте с 02.12.2006
Offline
165
#1

Вы б кусок хтаццесса с кодом бы прилепили :)

Cras amet qui numquam amavit quique amavit cras amet
gamepark
На сайте с 09.02.2007
Offline
124
#2

прилепил :)

Skom
На сайте с 02.12.2006
Offline
165
#3

Сейчас убегаю, проверить не могу.


RewriteRule ^(.*)/cat/([0-9]+)/(.*)$ $1/$3
savage
На сайте с 10.01.2007
Offline
224
#4
gamepark:
в коде прописаны относительные адреса (/images/kartinka.jpg).

Вообще-то в таком виде путь к картинке будет считаться относительно корня сайта или если указана база(<base href="урл">), то относительно нее. Причем тут htaccess?

Купить / продать сайт ( https://www.telderi.ru/?pid=ca1f70 ) | Недорогой и надежный хостинг ( https://www.get-host.ru )
gamepark
На сайте с 09.02.2007
Offline
124
#5
savage:
Вообще-то в таком виде путь к картинке будет считаться относительно корня сайта или если указана база(<base href="урл">), то относительно нее. Причем тут htaccess?

в коде все прописано без слеша в начале images/kartinka.jpg

htaccess при том видимо, что в тех разделах сайта, где нет mod rewrite - там все показывается замечательно, т.е. за базу берется корень

[Удален]
#6

а нужно со слешем в начале - это обязательно и по-другому никак :)

So1 добавил 05.11.2008 в 13:04

gamepark:

На старом хостинге такого не было все нормально обрезалось до корня. Как поправить?

а вот это как раз и не правильно.

savage
На сайте с 10.01.2007
Offline
224
#7
gamepark:
в коде все прописано без слеша в начале images/kartinka.jpg

Вот если без слеша вначале, то он считает относительно текущего пути. При использования modrewrite нужно добавить в head строчку <base href="http://www.site.ru"> до корня, чтобы картинки нормально отображались.

E
На сайте с 11.08.2007
Offline
34
#8
Skom:
Сейчас убегаю, проверить не могу.

RewriteRule ^(.*)/cat/([0-9]+)/(.*)$ $1/$3

пральна...

у вас (.*) - этой конструкцией "съедается" слеш

только везде поставьте перед cat слеш

Антикризисная покупка и продажа слонов (http://www.slons.ru/?ref=web)
gamepark
На сайте с 09.02.2007
Offline
124
#9
savage:
При использования modrewrite нужно добавить в head строчку <base href="http://www.site.ru"> до корня, чтобы картинки нормально отображались.

спасибо, помогло :)

[Удален]
#10
gamepark:
спасибо, помогло :)

мне не помогло, я прописал base, но картинки все равно не хочет отображать

.htaccess


RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)/ /index.php?id_part=$1 [L]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий