IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Проблема с mod_rewrite (https://www.imho.ws/showthread.php?t=67271)

Perfilev 29.08.2004 19:16

Проблема с 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]

is_absent 30.08.2004 06:42

вот это попробуй
RewriteCond %{REQUEST_URI} !\.gif$ [NC]
RewriteCond %{REQUEST_URI} !\.png$ [NC]
RewriteCond %{REQUEST_URI} !\.jpg$ [NC]
RewriteCond %{REQUEST_URI} !\.css$ [NC]

Perfilev 30.08.2004 12:29

Не, не канает :(
Столько сайтов в нете с такой навигацией по каталогам - скажите - КАК ВЫ ЭТО ДЕЛАЕТЕ??? :молись:

is_absent 30.08.2004 12:34

вот мой .htaccess
Код:

RewriteEngine on

RewriteCond %{QUERY_STRING} !no_rewrite=?$ [NC]
RewriteCond %{REQUEST_URI} !^/index.php.*$ [NC]
RewriteCond %{REQUEST_URI} !^/images [NC]
RewriteCond %{REQUEST_URI} !^/admin/images [NC]
RewriteCond %{REQUEST_URI} !\.gif$ [NC]
RewriteCond %{REQUEST_URI} !\.png$ [NC]
RewriteCond %{REQUEST_URI} !\.jpg$ [NC]
RewriteCond %{REQUEST_URI} !\.css$ [NC]

RewriteRule ^(.*) /index.php?SYS[V]=/$1&%{QUERY_STRING}


Ghost 30.08.2004 12:36

Andy1
В HTML-коде страниц делай ссылки на рисунки и стили относительно корня сайта, т.е. например не
Код:

href="style.css"
src="images/logo.jpg"

а
Код:

href="/style.css"
src="/images/logo.jpg"


Perfilev 30.08.2004 12:50

Всё заработало как ghost сказал.
Ребята, спасибо большое, особенно Ghost-у, столько лет уже html-ю, а на это не обратил внимания. Respect! :yees:

Perfilev 03.04.2005 22:21

Ещё вопрос появился:
можно ли сделать так, чтобы при запросе странички, в которой есть картинки, например, <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]
не получается:(

Psionic Vision 03.04.2005 23:30

Может, попробуй:
RewriteRule ^/images/(.*)$ /templates/2/1/images/$2 [L,NC]

Perfilev 03.04.2005 23:54

Неа, не катит :(

Psionic Vision 04.04.2005 00:25

Слэш в начале не нужен. Попробуй так:
RewriteRule ^images/(.*)$ templates/2/1/images/$2 [L,NC]

PS - что такое L,NC?

Sensey 04.04.2005 02:08

Люди, учите html, полезная штука :)

Подсказка - тэг base


ps
PS - что такое L,NC?
----------
Last - после нахождение прекращается работа мод реврайта чтоб не грузить

NC - не обращать внимание на регистр букв

Perfilev 04.04.2005 03:28

2Dark Visor:
не работает тоже :(
2Sensey:
при чём здесь это? я не хочу в принципе путь к темплейтам показывать, а индексный файл лежит в корне сайта.
Может я чего-то н понимаю - разъясните, плз.

Psionic Vision 04.04.2005 03:50

Гыы не работает, потому что не
RewriteRule ^images/(.*)$ templates/2/1/images/$2 [L,NC]
а
RewriteRule ^images/(.*)$ templates/2/1/images/$1 [L,NC]

=)

Perfilev 04.04.2005 10:05

Я уже тоже догнал ;)
Спасибо :yees:

Sensey 06.04.2005 07:29

Весто того что бы выполнять совет от Ghost - и переделывать все ссылки и ареса на картинки, просто почитай что делает тег base

Perfilev 06.04.2005 09:11

если использовать тег base, то, насколько я понимаю, любой, кто посмотрит html, увидит реальный путь, а этого мне совсем не нужно.
Как Dark Visor писал всё работает

Perfilev 12.04.2005 23:42

Ещё вопрос:
нужно, чтобы из поддомена 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] - А ТАК УЖЕ НЕТ :( Почему?

Psionic Vision 13.04.2005 02:17

Лучше всего - сделать перенаправление в index.php
А не работает потому, что первое совпадение перекрывает второе.

Perfilev 13.04.2005 09:00

Нужен именно 2-й вариант, т.к. он используется для перезаписи картинок, т.е. на самом деле строка должна выглядеть вот так:
RewriteRule ([^.]+)\.domain\.ru/images(.*)$ users/$1/images/$2 [L,NC]
как бы это сделать?
если бы запихнуть имя поддомена в переменную, то проблема бы решилась!

Psionic Vision 13.04.2005 15:54

У тебя в первом варианте две пары скобок, вот вторая пара и работает. Но не первая. Легче всего здесь - сделать обработку в index.php - и там же перенаправление с помощью
header("Location: ...");

Perfilev 14.04.2005 10:13

Дело в том, что я не хочу показывать реальный путь, где хранятся картинки, поэтому переписать нужно именно mod_rewrite-ом.
Если можно это как-то сделать без него, то буду рад услышать любые советы

matumba 16.04.2005 10:47

Подобная проблема, вообщем урл вида:
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-ом дружен, помогите плиз.

Psionic Vision 16.04.2005 15:05

matumba
RewriteRule ^show.php?id=([0-9]+)$ show$1.html
Попробуй так.

Perfilev 16.04.2005 20:58

Так чё с моей проблемой?
Знает ли кто решение?:(

Psionic Vision 16.04.2005 21:19

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]

Perfilev 16.04.2005 22:26

Нужно переписать путь, что не суть важно, в users/user/images/...
На этой альтернативе щас всё и работает, просто хотелось как по красивее :cool:
В любом случае, всем спасибо за советы, особенно Dark Visor :yees:
ps Если кто найдёт решение - отпишитесь, плиз, сюда или ICQ#86835583

BRULIK 05.04.2006 22:02

Подскажите как в Rewrite сделать изменение / на /check.php?qwe=123

т.е. при введение www.bred.com перенаправлялось на www.bred.com/check.php?qwe=123

matumba 05.04.2006 22:16

DirectoryIndex check.php?qwe=123
вставь в .HTACCESS и будет тебе счастье

BRULIK 05.04.2006 23:07

Я так и сделал. Просто сперва я почему то зациклился на этом Rewrite.
И всё же, как через Rewrite это сделать ?

Hubbitus 06.04.2006 11:52

Цитата:

BRULIK:
И всё же, как через Rewrite это сделать ?
Код:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ check.php?qwe=123 [L]



Часовой пояс GMT +4, время: 03:18.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.