The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"mod_rewrite"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Apache, http-серверы)
Изначальное сообщение [ Отслеживать ]

"mod_rewrite"  +/
Сообщение от pavlinux (ok) on 23-Июн-11, 03:52 
Дано:
* Debian 6.0.1a
* Apache/2.2.16 (Debian)
* DocumentRoot /var/www

*
<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
</Directory>

* Доп. директория /var/www/test/, c .htaccess
# ---

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

#

* есть HTML - /var/www/test/index.html

<html>
   <body>
       <center>
                <img src="/tb.png" />
       </center>
    </body>
</html>


Эта PNG-шка них...я не показывается

mod_rewrite включен и работает, проверенно включением неверной строки в

<IfModule mod_rewrite.c>
              Options +FollowSymlinks
              RewriteEngine On
              RewriteBase /
              sdfasdfasdfasdf
</IfModule>

Только он них...я не отрабатывает. :)

* error.log говорит

File does not exist: /var/www/tb.png, referer: http://....

---
Тока не пинайте, последний раз апач видел в версии 1.3.27

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "mod_rewrite"  +/
Сообщение от PavelR (??) on 26-Июн-11, 08:59 

На мой взгляд, всё оно верно говорит.

Уточни, где  какой файл лежит и по какому URL что запрашивается.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "mod_rewrite"  +/
Сообщение от pavlinux (ok) on 26-Июн-11, 19:10 
> На мой взгляд, всё оно верно говорит.
> Уточни, где  какой файл лежит и по какому URL что запрашивается.

ROOT=/var/www/

PNGшка в /var/www/something, там же .htaccess и HTML


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "mod_rewrite"  +/
Сообщение от DeadMustdie email(??) on 27-Июн-11, 10:24 
В описанной конфигурации PNG-файл должен читаться из "/var/www/tb.png".
Поскольку не читается, вариантов два:
  (а) его там нету
  (б) он там есть, но прав на его чтение пользователь www-data и/или группа www-data не имеют
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "mod_rewrite"  +/
Сообщение от pavlinux (ok) on 27-Июн-11, 11:49 
> В описанной конфигурации PNG-файл должен читаться из "/var/www/tb.png".
> Поскольку не читается, вариантов два:
>   (а) его там нету
>   (б) он там есть, но прав на его чтение пользователь
> www-data и/или группа www-data не имеют


~$ ls -la /var/www/test/ -la
total 279960
drwxr-xr-x  2 www-data www-data        67 Jun 24 13:42 .
drwxr-xr-x 14 www-data www-data      4096 Jun 24 14:14 ..
-r--r--r--  1 www-data www-data       143 Jun 23 04:26 .htaccess
-r--r--r--  1 www-data www-data       124 Jun 24 13:42 index.html
-r--r--r--  1 www-data www-data    181985 May 25 03:09 tb.png

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "mod_rewrite"  +/
Сообщение от DeadMustdie email(??) on 27-Июн-11, 16:47 
Ну дык а с какой стати данный PNG-шник должен искаться в подкаталоге test?
Он ищется в /var/www, о чем честно и написано в логе.

Директива "RewriteBase /" здесь ничего не даст: если файл .htaccess расположен в подкаталоге test корня документов сервера (как и файл test.htm), то "правая часть" правила подстановки должна включать в себя строку "/test". То бишь нужно написать более конкретное правило подстановки, скажем, через RewriteRule.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "mod_rewrite"  +/
Сообщение от pavlinux (ok) on 27-Июн-11, 17:13 
> Ну дык а с какой стати данный PNG-шник должен искаться в подкаталоге
> test?
> Он ищется в /var/www, о чем честно и написано в логе.
> Директива "RewriteBase /" здесь ничего не даст: если файл .htaccess расположен в
> подкаталоге test корня документов сервера (как и файл test.htm), то "правая
> часть" правила подстановки должна включать в себя строку "/test". То бишь
> нужно написать более конкретное правило подстановки, скажем, через RewriteRule.

Ладно, зайдем с другой стороны, как должен выглядить .htaccess, чтоб
всё находящиеся в нем думало, что оно живёт в коренвом каталоге сервера?!

Мне вебдезигнеры подарили вот такой.
Естественно с коментарием "У нас всё работает".


Options +FollowSymlinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC]
RewriteRule .* - [F,L]

RewriteRule ^(manager|assets)/*$ - [L]
RewriteRule \.(jpg|jpeg|png|gif|ico)$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]



Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "mod_rewrite"  +/
Сообщение от PavelR (??) on 27-Июн-11, 19:27 

> Ладно, зайдем с другой стороны, как должен выглядить .htaccess, чтоб
> всё находящиеся в нем думало, что оно живёт в коренвом каталоге сервера?!

ИМХО, это не реально в общем случае.
Если запросы будут идти к корневому каталогу сервера, то и .htaccess надо класть в /docroot/ , делать перенаправление на каталог ниже, и это может сломать то, что лежит непосредственно в /docroot/ (к примеру, при конфликте имен каталогов).

Допустим, в HTML file.html есть <img src="/img/image.png"> ...

Всё это лежит в каталоге /docroot/test/ ( /docroot/test/img/file.html (1) + /docroot/test/img/image.png (2) )

А где-то в /docroot/ есть /docroot/img/image.png (3)

Когда браузер делает запрос http://site/img/image.png никто и никогда не сможет определить, это запрос за (2) или за (3).


А если содержимое HTML прописано в относительных ссылках, то вроде как и править ничего не надо.. :-)


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "mod_rewrite"  +/
Сообщение от pavlinux (ok) on 27-Июн-11, 19:54 
>> Ладно, зайдем с другой стороны, как должен выглядить .htaccess, чтоб
>> всё находящиеся в нем думало, что оно живёт в коренвом каталоге сервера?!
> ИМХО, это не реально в общем случае.

Апач не умеет chroot()?


Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "mod_rewrite"  +/
Сообщение от PavelR (??) on 27-Июн-11, 20:01 
>>> Ладно, зайдем с другой стороны, как должен выглядить .htaccess, чтоб
>>> всё находящиеся в нем думало, что оно живёт в коренвом каталоге сервера?!
>> ИМХО, это не реально в общем случае.
> Апач не умеет chroot()?

Исправь DocRoot на нужное значение

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "mod_rewrite"  +/
Сообщение от pavlinux (ok) on 27-Июн-11, 20:26 
>>>> Ладно, зайдем с другой стороны, как должен выглядить .htaccess, чтоб
>>>> всё находящиеся в нем думало, что оно живёт в коренвом каталоге сервера?!
>>> ИМХО, это не реально в общем случае.
>> Апач не умеет chroot()?
> Исправь DocRoot на нужное значение

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


Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "mod_rewrite"  +/
Сообщение от DeadMustdie1 email(ok) on 27-Июн-11, 20:53 
> Ну вот представь, таскают тут дезигнеры тонны своих сайтов,
> я ж не могу их всех пихать в DocRoot, по этому надо
> придумать
> какую-то хрень для того, чтоб их сайты думали, что они живут в
> корне.

IMHO нормальный вариант один - на каждый такой "дезигнерский" сайт свой VirtualHost.
Некие усилия на настройку DNS окупятся простой, понятной и модульной конфигурацией.

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

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "mod_rewrite"  +/
Сообщение от pavlinux (ok) on 27-Июн-11, 21:14 
Лень мне их всех лечить, загнал Демьяна с апачем в виртуалку и клонов пускаю на разных портах.

Хотя да, можно было бы и VirtualHost.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "mod_rewrite"  +/
Сообщение от PavelR (??) on 27-Июн-11, 23:26 
> Лень мне их всех лечить, загнал Демьяна с апачем в виртуалку и
> клонов пускаю на разных портах.
> Хотя да, можно было бы и VirtualHost.

*.dev.firma.com в DNS + mod_macro (ручной вариант) / спецмодуль (название не помню, чтото там с VHost связано) - и пусть создают каталоги внутри определенного каталога сколько угодно, и ходят туда по catalog.dev.firma.com

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "mod_rewrite"  +/
Сообщение от PavelR (??) on 27-Июн-11, 23:28 
>[оверквотинг удален]
>> я ж не могу их всех пихать в DocRoot, по этому надо
>> придумать
>> какую-то хрень для того, чтоб их сайты думали, что они живут в
>> корне.
> IMHO нормальный вариант один - на каждый такой "дезигнерский" сайт свой VirtualHost.
> Некие усилия на настройку DNS окупятся простой, понятной и модульной конфигурацией.
> А вообще если "дезигнеры" были в курсе, что всё это хозяйство будет
> жить в коммунальной
> среде, то за такие "корень-ориентированные" сайты их надо гнать с работы метлой
> поганой.

тут нужен бОланс ))))
пока верстают - делают относительные ссылки. В продакшен отправлять - надо всё позаменять, иначе будет https://www.opennet.ru/openforum/vsluhforumID8/7281.html

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "mod_rewrite"  +/
Сообщение от pavlinux (ok) on 28-Июн-11, 00:23 
>>[оверквотинг удален]
> тут нужен бОланс ))))
> пока верстают - делают относительные ссылки. В продакшен отправлять - надо всё
> позаменять, иначе будет https://www.opennet.ru/openforum/vsluhforumID8/7281.html

Хотел сделать так,

http://domain.com/site1/
http://domain.com/site2/
http://domain.com/site3/
...

но чтоб любой момент, перенести site[n] в корень.
Правильные относительные ссылки тут спасли бы, так этих до...бы,
копипастят CMS с сайтов, кто-как ...

Вы б видели что они присылают, статистику, логи, SQL дампы с логинами
и паролями, причем с рабочего на данный момент интернет магазина.
Проверил только 4 логина, и все рабочие.
Я конечно гадить не буду, но вот так кому-нибудь попадётся.

Владельцы тоже дол...бы, первое правило, - уволил админа - меняй всё, вплоть до пола :)

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "mod_rewrite"  +/
Сообщение от Andrey Mitrofanov on 28-Июн-11, 09:46 
>[оверквотинг удален]
>> пока верстают - делают относительные ссылки. В продакшен отправлять - надо всё
>> позаменять, иначе будет https://www.opennet.ru/openforum/vsluhforumID8/7281.html
> Хотел сделать так,
> http //domain.com/site1/
> http //domain.com/site2/
> http //domain.com/site3/
> ...
> но чтоб любой момент, перенести site[n] в корень.
> Правильные относительные ссылки тут спасли бы, так этих до...бы,
> копипастят CMS с сайтов, кто-как ...

Сделай им, наконец,

http!//site1.domain.com/
http!//site2.domain.com/
http!//site3.domain.com/

и _не_ публикуй сайты в DNS --- пусть ещё свои hosts обкопипастят.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру