Apache2 не отображает один каталог, что приводит к сбою правил.htaccess. В чем дело?

У меня есть установка CodeIgniter в VirtualHost на Apache2 на Ubunto Natty, настроенный следующим образом:

/application
/system
...
/www/index.php

Вот мой.htaccess, который находится в /:

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /

        RewriteCond %{REQUEST_URI} ^system.*
        RewriteRule ^(.*)$ /www/index.php?/$1 [L]

        RewriteCond %{REQUEST_URI} ^application.*
        RewriteRule ^(.*)$ /www/index.php?/$1 [L]

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /www/index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
        ErrorDocument 404 /www/index.php
</IfModule>

Когда я перехожу на сайт, я вижу прикрепленную картинку:список каталогов apache без видимой папки www

Вот что я вижу, когда бегу ls -al в /:

total 44
drwxr-xr-x  8 admin admin 4096 2011-09-06 00:35 .
drwxr-xr-x  3 admin admin 4096 2011-09-04 06:36 ..
drwxr-xr-x 12 admin admin 4096 2011-09-04 06:29 application
-rw-r--r--  1 admin admin   94 2011-09-05 18:53 .hg_archival.txt
-rw-r--r--  1 admin admin  431 2011-09-06 00:35 .htaccess
-rw-r--r--  1 admin admin 2496 2011-09-05 18:53 license.txt
drwxr-xr-x  2 admin admin 4096 2011-09-06 00:32 logs
drwxr-xr-x 10 admin admin 4096 2011-09-04 06:29 system
drwxr-xr-x  2 admin admin 4096 2011-09-06 00:30 test
drwxr-xr-x 11 admin admin 4096 2011-09-04 06:29 user_guide
drwxr-xr-x  5 admin admin 4096 2011-09-04 06:29 www

Что мне нужно изменить, чтобы появилась моя папка www, позволяющая работать моему ReWriteRule, или это даже проблема?

PS Следует упомянуть, что мои файлы поступают в эту папку через перехват Git после получения после того, как они были отправлены в хранилище в другом месте на сервере. Я не думаю, что это имеет значение, потому что каждый файл, кажется, прибывает, но я упомяну это.

1 ответ

Вы не хотите устанавливать страницу INDEX на страницу 404, иначе она не будет загружаться. Просто. Попробуй это:

Если вы хотите иметь перенаправление www, создайте v-host только с вашим внешним IP-адресом.

#vHosts Config:

NameVirtualHost *:80

<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^\.]+\.[^\.]+)$
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
<Directory "C:/xampp/htroot">
    AllowOverride All
    Options Indexes FollowSymLinks Includes ExecCGI
    Order allow,deny
    Allow from all
</Directory>

в противном случае поместите это в файл.htaccess в корневом каталоге сайта.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^\.]+\.[^\.]+)$
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

и УБЕДИТЕСЬ, что вы разрешаете указатели и директивы опций goody-two-shoes. Это должно исправить вас.

РЕДАКТИРОВАТЬ: Вы можете в значительной степени удалить теги "ifmodule". Попробуйте тоже так. По крайней мере, объясните, в чем ваша проблема, это немного мягко.

Другие вопросы по тегам