The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема с переадресацией на, !*! 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, 07:32 , 31-Июл-11 (1)
    > Подскажите, как исправить?

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


    • Проблема с переадресацией на, !*! lucky89, 18:33 , 31-Июл-11 (2)
      > Вкурить ман по mod_rewrite апаТча.

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

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

  • Проблема с переадресацией на, !*! XoRe, 18:55 , 31-Июл-11 (3)
    RewriteEngine on
    RewriteRule ^/$ / [L,QSA]

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

    • Проблема с переадресацией на, !*! lucky89, 20:08 , 31-Июл-11 (4)
      > 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, 13:07 , 01-Авг-11 (5)
        Вычитал, что добавлять надо в файл .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 он открывается для редактирования с сохраненным в нем вашим кодом.

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

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

          • Проблема с переадресацией на, !*! lucky89, 17:34 , 01-Авг-11 (8)
            >  Уууу. Как все запущено.

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

            Виртуальных хостов у меня нет и надеюсь не будет. Файлы сайта хранятся там, где была тестовая страничка апатча то есть /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

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

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

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


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

              .....

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

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

              • Проблема с переадресацией на, !*! Дядя_Федор, 20:24 , 01-Авг-11 (10)
                Моя фраза по ls -la попала в цитируемое поле. Ошибся - прошу прощения. :)
                • Проблема с переадресацией на, !*! lucky89, 21:28 , 01-Авг-11 (11)
                  Поправил. Апатч не перезапустился, говорит, что это "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, с ним запускается, но улучшений нет.

                  • Проблема с переадресацией на, !*! Дядя_Федор, 21:49 , 01-Авг-11 (12)
                    > Видел на другом форуме, что можно написать параметр 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оответственно, надо поменять имя файла.

                    • Проблема с переадресацией на, !*! Дядя_Федор, 21:53 , 01-Авг-11 (13)
                      И еще должен быть, конечно, подгружен модуль mod_rewrite.
                      В httpd.conf:
                      LoadModule rewrite_module modules/mod_rewrite.so
                      Ну - это у меня так в gentoo. :) Возможно - в Вашем дистрибутиве это где-то в другом месте лежит - всяко бывает.
                      • Проблема с переадресацией на, !*! lucky89, 05:19 , 02-Авг-11 (14)
                        Через 3 недели попробую, как с отдыха вернусь и отпишусь. Спасибо за помощь!


                      • Проблема с переадресацией на, !*! lucky89, 16:21 , 27-Авг-11 (15)
                        Все 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, 12:40 , 13-Сен-11 (16)
                        Заработало!
                        Модуль этот был отключен.
                        А включался он так:

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

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

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




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

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