![]() |
Проблема с mod_rewrite
Посмотрите, как настроить mod rewrite правильно???
http://mod.wallpaperzzz.com Просто я хочу сделать, чтобы mod.wallpaperzzz.com/main/index.html -> mod.wallpaperzzz.com/index.php?num=main , но при mod.wallpaperzzz.com/main/index.html ссылки на картинки и стили автоматом становятся в этой директории:( Вот .htaccess: RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^([a-z]*)/index.html$ index.php?num=$1 [L,NC] |
вот это попробуй
RewriteCond %{REQUEST_URI} !\.gif$ [NC] RewriteCond %{REQUEST_URI} !\.png$ [NC] RewriteCond %{REQUEST_URI} !\.jpg$ [NC] RewriteCond %{REQUEST_URI} !\.css$ [NC] |
Не, не канает :(
Столько сайтов в нете с такой навигацией по каталогам - скажите - КАК ВЫ ЭТО ДЕЛАЕТЕ??? :молись: |
вот мой .htaccess
Код:
RewriteEngine on |
Andy1
В HTML-коде страниц делай ссылки на рисунки и стили относительно корня сайта, т.е. например не Код:
href="style.css"Код:
href="/style.css" |
Всё заработало как ghost сказал.
Ребята, спасибо большое, особенно Ghost-у, столько лет уже html-ю, а на это не обратил внимания. Respect! :yees: |
Ещё вопрос появился:
можно ли сделать так, чтобы при запросе странички, в которой есть картинки, например, <img src="/templates/2/1/images/logo.jpg"> - т.е. лежит в templates/2/1/images/ тег картинки выглядел так: <img src="/images/logo.jpg">, а потом реврайтом тащить картинку из папки с темплейтом? Так: RewriteRule ^(.*)/images/(.*)$ $1/templates/2/1/images/$2 [L,NC] не получается:( |
Может, попробуй:
RewriteRule ^/images/(.*)$ /templates/2/1/images/$2 [L,NC] |
Неа, не катит :(
|
Слэш в начале не нужен. Попробуй так:
RewriteRule ^images/(.*)$ templates/2/1/images/$2 [L,NC] PS - что такое L,NC? |
Люди, учите html, полезная штука :)
Подсказка - тэг base ps PS - что такое L,NC? ---------- Last - после нахождение прекращается работа мод реврайта чтоб не грузить NC - не обращать внимание на регистр букв |
2Dark Visor:
не работает тоже :( 2Sensey: при чём здесь это? я не хочу в принципе путь к темплейтам показывать, а индексный файл лежит в корне сайта. Может я чего-то н понимаю - разъясните, плз. |
Гыы не работает, потому что не
RewriteRule ^images/(.*)$ templates/2/1/images/$2 [L,NC] а RewriteRule ^images/(.*)$ templates/2/1/images/$1 [L,NC] =) |
Я уже тоже догнал ;)
Спасибо :yees: |
Весто того что бы выполнять совет от Ghost - и переделывать все ссылки и ареса на картинки, просто почитай что делает тег base
|
если использовать тег base, то, насколько я понимаю, любой, кто посмотрит html, увидит реальный путь, а этого мне совсем не нужно.
Как Dark Visor писал всё работает |
Ещё вопрос:
нужно, чтобы из поддомена user.domain.ru выдрать user и запихнуть в переменную какую-нить, чтобы можно было пользоваться в правилах, как это сделать? Попробовал так: RewriteCond %{HTTP_HOST} [^.]+\.domain\.ru$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ([^.]+)\.domain\.ru(.*)$ index.php?user=$1 [L,NC] - ТАК РАБОТАЕТ RewriteRule ([^.]+)\.domain\.ru/images(.*)$ index.php?user=$1&img=$2 [L,NC] - А ТАК УЖЕ НЕТ :( Почему? |
Лучше всего - сделать перенаправление в index.php
А не работает потому, что первое совпадение перекрывает второе. |
Нужен именно 2-й вариант, т.к. он используется для перезаписи картинок, т.е. на самом деле строка должна выглядеть вот так:
RewriteRule ([^.]+)\.domain\.ru/images(.*)$ users/$1/images/$2 [L,NC] как бы это сделать? если бы запихнуть имя поддомена в переменную, то проблема бы решилась! |
У тебя в первом варианте две пары скобок, вот вторая пара и работает. Но не первая. Легче всего здесь - сделать обработку в index.php - и там же перенаправление с помощью
header("Location: ..."); |
Дело в том, что я не хочу показывать реальный путь, где хранятся картинки, поэтому переписать нужно именно mod_rewrite-ом.
Если можно это как-то сделать без него, то буду рад услышать любые советы |
Подобная проблема, вообщем урл вида:
show.php?id=$1 надо превратить в show(номерочки id).html пробовал следующее все поочередности: RewriteEngine On Options +FollowSymLinks RewriteBase / #RewriteRule ^/?show([0-9]+)\.html show.php?id=$1 #RewriteRule ^(.*)show([0-9]+).html$ $1/show.php?id=$2 #RewriteRule ^show/([0-9]) /show.php?id=$1 #RewriteRule ^show\/([0-9]+)\.html$ /show.php?id=$1 #RewriteRule ^show/([a-z0-9])+/$ /show.php?id=$1 #RewriteRule show/([0-9]+).html$ /show.php?id=$1 #RewriteRule ^show(.*)\.html$ /show.php?id=$1 #RewriteRule ^show(.*).html /show.php?id=$1 #RewriteRule ^show(.*).html show.php?id=$1 ничего не помогает, может в скриптах еще надо обработку REQUEST_URI нужно прописать как то. Кто c MOD_REWRITE-ом дружен, помогите плиз. |
matumba
RewriteRule ^show.php?id=([0-9]+)$ show$1.html Попробуй так. |
Так чё с моей проблемой?
Знает ли кто решение?:( |
Andy1,
боюсь, нет. но вот альтернатива. Тебе нужно было перенаправить http://user.domain.ru/images/ на http://domain.ru/index.php?user=user&img=image так? Давай забудем про домен и сделаем так: http://domain.ru/~user/images/ => http://domain.ru/index.php?user=user&img=image RewriteRule ^~(.*)/images/(.*)$ index.php?user=$1&img=$2 [L,NC] |
Нужно переписать путь, что не суть важно, в users/user/images/...
На этой альтернативе щас всё и работает, просто хотелось как по красивее :cool: В любом случае, всем спасибо за советы, особенно Dark Visor :yees: ps Если кто найдёт решение - отпишитесь, плиз, сюда или ICQ#86835583 |
Подскажите как в Rewrite сделать изменение / на /check.php?qwe=123
т.е. при введение www.bred.com перенаправлялось на www.bred.com/check.php?qwe=123 |
DirectoryIndex check.php?qwe=123
вставь в .HTACCESS и будет тебе счастье |
Я так и сделал. Просто сперва я почему то зациклился на этом Rewrite.
И всё же, как через Rewrite это сделать ? |
Цитата:
Код:
RewriteEngine on |
| Часовой пояс GMT +4, время: 03:18. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.