Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Apache2 - Не работают редиректы .htaccess  (Прочитано 47472 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sta1keR

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Ubuntu 8.10 Desktop + linux_server

Проблема в том что видно папки за сайтом  (example /var/www/engine)
Тоесть если наблать http://localhost/engine - видим всё содержимое

В корне у меня .htaccess в котором прописаны все редиректы
В apache2.conf - AccessFile - .htaccessДобавлял в apasche2.conf<Directory /var/www/
AllowOverride=All
</Directiry>
не помогло

mod_rewrite=on

Такое впечатление что apache не видит .htaccess

Help me plz






Оффлайн Sta1keR

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #1 : 06 Марта 2009, 15:46:51 »
есть на сайте веб-специалисты?

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #2 : 06 Марта 2009, 15:55:14 »
У меня в apache2.conf
AccessFileName .htaccess
Все работает.

Оффлайн Sta1keR

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #3 : 07 Марта 2009, 14:48:08 »
У меня в apache2.conf
AccessFileName .htaccess
Все работает.


тоесть Вы при попытке зайти в папку http://localhost/folder получаете редирект на несуществующую страницу?

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #4 : 07 Марта 2009, 15:05:51 »
Обратите внимание на написание директивы - не AccessFile - .htaccess а AccessFileName .htaccess

Оффлайн Sta1keR

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #5 : 07 Марта 2009, 20:13:18 »
да, у меня именно так, это лично моя "недописка".

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #6 : 07 Марта 2009, 21:16:50 »
Тогда давайте попробуем выяснить - у Вас именно не читается .htaccess или не работает mod_rewrite.
О каком именно .htaccess идет речь? О том, который лежит в /var/www ? Что в нем написано?
И еще вопрос - расскажите подробнее, что Вы хотите добиться. Из Вашего описания понятно, что у Вас есть /var/www который должен отвечать на http://localhost
У Вас есть /var/www/engine - что Вы хотите с ним сделать? И как?

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #7 : 07 Марта 2009, 21:38:07 »
Добавлю: для того, чтобы закрыть доступ к папке (в Вашем случае - /var/www/engine) достаточно в этой папке создать .htaccess, в котором будет одна строка:
Deny from all(предполагается, что у Вас есть AllowOverride All в apache2.conf
Опять же, проверьте синтаксис - знак = не нужен).
Кстати, этим Вы проверите заодно, читается ли Ваш .htaccess.

Оффлайн Nebulosa

  • Активист
  • *
  • Сообщений: 397
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #8 : 07 Марта 2009, 22:04:34 »
Не AllowOverride=All а просто без равно:

<Directory /var/www/
AllowOverride All
</Directiry>

RTFM!  :coolsmiley:

Оффлайн Sta1keR

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #9 : 09 Марта 2009, 12:11:22 »
Тогда давайте попробуем выяснить - у Вас именно не читается .htaccess или не работает mod_rewrite.
О каком именно .htaccess идет речь? О том, который лежит в /var/www ? Что в нем написано?
И еще вопрос - расскажите подробнее, что Вы хотите добиться. Из Вашего описания понятно, что у Вас есть /var/www который должен отвечать на http://localhost
У Вас есть /var/www/engine - что Вы хотите с ним сделать? И как?


в /var/www/ - у меня движек сайта
хочу сделать в этом каталоге папку с файлом на которые будут сцылки www
но хочу сделать это таким образом чтобы не был возможен листинг файлов (просмотр всего каталога - только прямая ссылка на файл)

в файле у меня DirectoryIndex index.php

RewriteEngine On


# Reputation
RewriteRule ^user/reputation/([^/]*)/(/?)+$ index.php?do=reputation&user=$1 [L]
RewriteRule ^user/reputation/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=reputation&user=$1&page=$2 [L]
RewriteRule ^topusers\.html$ /?do=topusers [L]

# Редиректы
RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]

# DLE Forum
RewriteRule ^forum(/?)+$ /?do=forum [L]
RewriteRule ^forum/category_([0-9]+)(/?)+$ index.php?do=forum&category=$1 [L]
RewriteRule ^forum/forum_([0-9]+)(/?)+$ index.php?do=forum&showforum=$1 [L]
RewriteRule ^forum/forum_([0-9]+)/([0-9]+)(/?)+$ index.php?do=forum&showforum=$1&cstart=$2 [L]
RewriteRule ^forum/topic_([0-9]+)(/?)+$ index.php?do=forum&showtopic=$1 [L]
RewriteRule ^forum/topic_([0-9]+)/([0-9]+)(/?)+$ index.php?do=forum&showtopic=$1&cstart=$2 [L]
RewriteRule ^forum/topic_([0-9]+)/reply(/?)+$ index.php?do=forum&act=_topic&code=reply&tid=$1 [L]
RewriteRule ^forum/forum_([0-9]+)/add(/?)+$ index.php?do=forum&act=add_topic&forum_id=$1 [L]
RewriteRule ^forum/search(/?)+$ index.php?do=forum&act=search [L]
RewriteRule ^forum/search/([^/]+)/([0-9]+)(/?)+$ index.php?do=forum&act=search&search_text=$1&cstart=$2 [L]
RewriteRule ^forum/subscription(/?)+$ index.php?do=forum&act=subscription [L]
RewriteRule ^forum/getnew(/?)+$ index.php?do=forum&act=getnew [L]
RewriteRule ^forum/getnew/([0-9]+)(/?)+$ index.php?do=forum&act=getnew&cstart=$1 [L]
RewriteRule ^forum/warn/([^/]*)(/?)+$ index.php?do=forum&act=warn&user=$1 [L]
RewriteRule ^forum/warn/([^/]*)/([0-9]+)(/?)+$ index.php?do=forum&act=warn&user=$1&cstart=$2 [L]
RewriteRule ^forum/reputation/([^/]*)(/?)+$ index.php?do=forum&act=reputation&user=$1 [L]
RewriteRule ^forum/reputation/([^/]*)/([0-9]+)(/?)+$ index.php?do=forum&act=reputation&user=$1&cstart=$2 [L]

# Сам пост
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$2 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$2&newsid=$3 [L]
RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&news_page=$1 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$1&newsid=$2 [L]
RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1 [L]

# За день
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L]
# За весь месяц
RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L]
# Вывод за весь год
RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L]
RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L]
# вывод отдельному тегу
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]
# вывод для отдельного юзера
RewriteRule ^user/([^/]*)/rss.xml$ engine/rss.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L]
RewriteRule ^user/([^/]*)/page/([0-9]+)(/?)+$ index.php?subaction=userinfo&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]
# вывод всех последних новостей
RewriteRule ^lastnews/(/?)+$ index.php?do=lastnews [L]
RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]
# вывод в виде каталога
RewriteRule ^catalog/([^/]*)(/?)+$ index.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$1&cstart=$2 [L]
# вывод непрочитанных статей
RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L]
RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L]
# Статистические страницы
RewriteRule ^static/(.*).html(/?)+$ index.php?do=static&page=$1 [L]
# вывод избранных статей
RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]
RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]
# Мини-чат
RewriteRule ^mchat(/?)+$ index.php?do=mchat [L]
RewriteRule ^mchat/history(/?)+$ index.php?do=mchat_history [L]
RewriteRule ^mchat/history/page(.*).html(/?)+$ index.php?do=mchat_history&cstart=$1 [L]

RewriteRule ^rules.html$ index.php?do=rules [L]
RewriteRule ^statistics.html$ index.php?do=stats [L]
RewriteRule ^addnews.html$ index.php?do=addnews [L]
RewriteRule ^rss.xml$ engine/rss.php [L]
RewriteRule ^sitemap.xml$ uploads/sitemap.xml [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]
RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^<]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L]
RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1 [L]
RewriteRule ^print:([^/]+).html$ engine/print.php?do=static&page=$1 [L]
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L]


Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #10 : 09 Марта 2009, 13:36:34 »
Зачем тогда mod_rewrite?
To turn off automatic directory indexing, remove the Indexes keyword from the appropriate Options line. To turn off directory listing for a particular subdirectory, you can use Options -Indexes. For example:

<Directory /path/to/directory>
   Options -Indexes
</Directory>

И все-таки начните с определения, все ли у Вас в порядке с apache.conf - читается ли вообще .htaccess. Выше я написал, как проще всего это проверить.
« Последнее редактирование: 09 Марта 2009, 13:40:26 от Karl500 »

Оффлайн Librarian

  • Участник
  • *
  • Сообщений: 149
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #11 : 09 Марта 2009, 20:24:11 »
sudo a2enmod rewrite

Оффлайн Sta1keR

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #12 : 10 Марта 2009, 14:48:33 »
<Directory /var/www/
AllowOverride All
</Directory>
apache перезагрузился и остался при таком же состоянии


<Directory /var/www/>
   Options -Indexes
</Directory>

это проверялось, не работает... всё равно пускает в папки...


указал до нужной папки
<Directory /var/www/anime>
   Options -Indexes
</Directory>

отписал Forbidden
You don't have permission to access /anime/ on this server.
  :D :D :D :D

получается что мне нужно теперь указать все папки куда не стоит лазить? или просто в каталоге /var/www/ сделать папку /var/www/MySite/
и указать в apache2.conf

<Directory /var/www/MySite>
   Options -Indexes
</Directory>

правильно я рассуждаю? :idiot2:
« Последнее редактирование: 10 Марта 2009, 15:00:18 от Sta1keR »

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #13 : 10 Марта 2009, 16:24:20 »
Можно просто в нужных папках создать файлы .htaccess с записью
Options -Indexesвнутри.

Оффлайн Sta1keR

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Re: Apache2 - Не работают редиректы .htaccess
« Ответ #14 : 10 Марта 2009, 17:12:12 »
Хоть это и работает, но это немного не то что я  хотел....
Странная штука... я тут сервак полностью снёс и поставил заново но делал не по ману а так на память... и теперь когда у меня строка в конфиге AllowOwerride=All он её не понимает говорит что типа такого модуля нет (:


Спасибо Вам всем за то что вывели из тупика :)

 

Страница сгенерирована за 0.281 секунд. Запросов: 23.