URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7320
[ Назад ]

Исходное сообщение
"Проблема с переадресацией на"

Отправлено lucky89 , 31-Июл-11 03:50 
На сервере стоит линукс дебиан на нем апатч, межсетевой экран, шлюз в инет, сквид. На апатч переадресовываются, те кому запрещен доступ в инет для разъяснения причин. Делается это командой:

iptables -t nat -A PREROUTING -s 192.168.102.80 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.102.102

где 192.168.102.80 - адрес должника
192.168.102.102 - адрес этого же сервера, вместо него можно localhost написать

Проблема вот в чем. Если должник лезет на сайт скажем http://www.google.ru/ или http://vk.com/ то его прекрасно перекидывает на http://192.168.102.102/index.html

Если же идет на сайт  http://www.google.ru/search?bla-bla или http://vk.com/albums5413524 то выходит сообщение, что станицы не существует.

Такое ощущение, что апатч пытается найти сайт http://192.168.102.102/albums5413524 и так далее. Нужно, чтобы не только из корня сайта, но и из любого другого места пользователя перекидывало на страничку index.html. А потом он мог ходить по ссылкам моего сайта (он из нескольких страниц) Подскажите, как исправить?


Содержание

Сообщения в этом обсуждении
"Проблема с переадресацией на"
Отправлено PavelR , 31-Июл-11 07:32 
> Подскажите, как исправить?

Вкурить ман по mod_rewrite апаТча.



"Проблема с переадресацией на"
Отправлено lucky89 , 31-Июл-11 18:33 
> Вкурить ман по mod_rewrite апаТча.

Почитал руководства по этому модулю, полезная штука, но сложная (для меня)... Я никогда особо не работал с апатчем и похоже не буду. Он мне нужен только для отображения трех примитивных html страничек связанных простыми ссылками.

Можно готовое решение, что в какой файл и в какое место добавить (можно в общем виде), если не сложно конечно.


"Проблема с переадресацией на"
Отправлено XoRe , 31-Июл-11 18:55 
RewriteEngine on
RewriteRule ^/$ / [L,QSA]

В настройки хоста в конфиге апача.


"Проблема с переадресацией на"
Отправлено lucky89 , 31-Июл-11 20:08 
> RewriteEngine on
> RewriteRule ^/$ / [L,QSA]
> В настройки хоста в конфиге апача.

Есть файлы:

ls /etc/apache2
apache2.conf  conf.d  envvars  httpd.conf  magic  mods-available  mods-enabled  ports.conf  sites-available  sites-enabled

Добавил эти строки в ранее пустой httpd.conf, остановил, запускаю:

root@102:~# /etc/init.d/apache2 restart
Syntax error on line 1 of /etc/apache2/httpd.conf:
Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
failed!

Походу не туда добавил строки... А где тут настройки хоста? Куда добавить?



"Проблема с переадресацией на"
Отправлено lucky89 , 01-Авг-11 13:07 
Вычитал, что добавлять надо в файл .htaccess
В директории апатча этого файла не было.Создал его командой

nano /etc/apache2/.htaccess

Добавил код, сохранил, выполнил

/etc/init.d/apache2 restart

Никаких улучшений. Захожу на softtime.ru/forum/rules.php?id_forum=5 получаю ошибку:

Not Found

The requested URL /forum/rules.php was not found on this server.

Apache/2.2.16 (Debian) Server at www.softtime.ru Port 80


Захожу на softtime.ru - быстро перекидывает, куда надо. Может я чего сделал неправильно?

Еще момент интересный: файл .htaccess создался и изменения в нем сохранились. При повторном вводе команды ls /etc/apache2/ его в директории не видно, но при команде nano /etc/apache2/.htaccess он открывается для редактирования с сохраненным в нем вашим кодом.


"Проблема с переадресацией на"
Отправлено Дядя_Федор , 01-Авг-11 15:17 
Плохо быть бестолковым. Этот файл надо добавить в ДОМАШНЮЮ директорию, которая задана в Вашем Веб-сервере. Еще больше "пальцем показываю". В ТУ директорию, которая задана в настройках конкретного сайта (а их может быть много - в случае виртуал-хостов) в качестве DocumentRoot. По секрету скажу, что у Апача еще есть лог-файлы. Они очень часто могут помочь.

"Проблема с переадресацией на"
Отправлено Дядя_Федор , 01-Авг-11 15:20 
> Еще момент интересный: файл .htaccess создался и изменения в нем сохранились. При
> повторном вводе команды ls /etc/apache2/ его в директории не видно, но
> при команде nano /etc/apache2/.htaccess он открывается для редактирования с сохраненным
> в нем вашим кодом.

Уууу. Как все запущено. Батенька, Вам бы надо начать с простейшего ликбеза. О том, что такое UNIX и какие команды у него есть и как работают. Ничего "интересного" в том, что Вы написали выше - нет. Есть печальное. Печальное то, что человек не знает прописных истин. То есть - грубо говоря пытается читать учебник по алгебре 6 класса, не усвоив учебник по математике 2-го класса.


"Проблема с переадресацией на"
Отправлено lucky89 , 01-Авг-11 17:34 
>  Уууу. Как все запущено.

Есть такое - не отрицаю... Расскажите, как эти прописные истины называются и где про них почитать (на русском языке).

Виртуальных хостов у меня нет и надеюсь не будет. Файлы сайта хранятся там, где была тестовая страничка апатча то есть /var/www
В общем я убрал все изменения, которые вносил, сделал следующие:

/etc/apache2/httpd.conf

Там пусто.
Добавил строку:

ServerName 102

Пропало предупреждение, что не определяется имя сервера.

Открыл:
nano /etc/apache2/sites-available/default

В нем:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride none
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Создал файл для вашего кода в соответствующей директории:
nano /var/www/.htaccess
С содержимым:

RewriteEngine on
RewriteRule ^/$ / [L,QSA]

/etc/init.d/apache2 restart

Никаких изменений... Пере адресация только с главных страниц сайтов.
В логах пишет сообщения типа:
File does not exist: /var/www/13123
File does not exist: /var/www/favicon.ico
File does not exist: /var/www/complete, referer: http://www.google.ru/search?q=linux+apache+documentroot
Получается не работает пока /var/www/.htaccess

Может еще подсказку дадите? ;)


"Проблема с переадресацией на"
Отправлено Дядя_Федор , 01-Авг-11 20:23 
>>  Уууу. Как все запущено.
> Есть такое - не отрицаю... Расскажите, как эти прописные истины называются и
> где про них почитать (на русском языке). То, что Вас так озадачило решается при помощи команды ls -la. :) Первый класс, вторая четверть.

Любая кинга по UNIX.


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

.....

> Может еще подсказку дадите? ;)

Дам. В директиве описания директории поменяйте AllowOverride none на AllowOverride yes. Эта директива указывает на то, что файл .htacces можно обрабатывать. Ну и перезапустите Апача, есесвенна.


"Проблема с переадресацией на"
Отправлено Дядя_Федор , 01-Авг-11 20:24 
Моя фраза по ls -la попала в цитируемое поле. Ошибся - прошу прощения. :)

"Проблема с переадресацией на"
Отправлено lucky89 , 01-Авг-11 21:28 
Поправил. Апатч не перезапустился, говорит, что это "yes" синтаксическая ошибка:

Syntax error on line 35 of /etc/apache2/sites-enabled/000-default:
Illegal override option yes
Action 'configtest' failed.
The Apache error log may have more information.
failed!

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


"Проблема с переадресацией на"
Отправлено Дядя_Федор , 01-Авг-11 21:49 
> Видел на другом форуме, что можно написать параметр all, с ним запускается,
> но улучшений нет.

Я ступил - точно AllowOverride all. Теперь конструкция для .htaccess предлагается такая:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>
Это при условии, что у Вас по дефолту выводится страница index.php. Если index.html - cоответственно, надо поменять имя файла.


"Проблема с переадресацией на"
Отправлено Дядя_Федор , 01-Авг-11 21:53 
И еще должен быть, конечно, подгружен модуль mod_rewrite.
В httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so
Ну - это у меня так в gentoo. :) Возможно - в Вашем дистрибутиве это где-то в другом месте лежит - всяко бывает.

"Проблема с переадресацией на"
Отправлено lucky89 , 02-Авг-11 05:19 
Через 3 недели попробую, как с отдыха вернусь и отпишусь. Спасибо за помощь!



"Проблема с переадресацией на"
Отправлено lucky89 , 27-Авг-11 16:21 
Все 3 строки AllowOverride none изменил на AllowOverride all

nano /etc/apache2/sites-available/default

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

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

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride all
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

.htaccess теперь с содержимым:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

</IfModule>

У меня по дефолту должна выводиться страница index.html

Апатч пере запустился без ошибок, но проблема не решилась.

> И еще должен быть, конечно, подгружен модуль mod_rewrite.
> В httpd.conf:
> LoadModule rewrite_module modules/mod_rewrite.so
> Ну - это у меня так в gentoo. :) Возможно - в
> Вашем дистрибутиве это где-то в другом месте лежит - всяко бывает.

Как это проверить? у меня debian


"Проблема с переадресацией на"
Отправлено lucky89 , 13-Сен-11 12:40 
Заработало!
Модуль этот был отключен.
А включался он так:

Подключил модуль: sudo a2enmod rewrite
И перезагрузил apache /etc/init.d/apache2 restart

И после этого всё заработало!!!

СПАСИБО ЗА ПОМОЩЬ!