Я использую CodeIgniter и только что установил стек LAMP на облачный сервер Ubuntu 10.10.
Все работает отлично, и у меня включен модуль userdir Apache, так что мой домашний каталог находится в /home/myapp/public_html
, и я обращаюсь к нему, перейдя в servername/~myapp
.
К сожалению, .htaccess
перезапись, похоже, не работает - она вызывает сообщение 404 the file /home/myapp/public_html/index.php
не может быть найдено - ошибка 404.
Mod_rewrite включен.
Я знаю, что вам нужно установить директиву AllowOverride All
- она установлена в /etc/apache2/sites-enabled/default
- но перезапись, похоже, не работает должным образом.
Мой .htaccess
файл просто содержит:
RewriteEngine on
RewriteCond $1 !^(index.php|img|stylesheets|js|icons|robots\.txt|user_guide)
RewriteRule ^(.*)$ index.php/$1 [L]
А мой /etc/apache2/sites-available/default
выглядит так:
<VirtualHost *:80>
ServerAdmin dan@danmatthews.me
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>
ErrorLog ${APACHE_LOG_DIR}/error.log
И, наконец, /etc/apache2/mods-enabled/userdir.conf
выглядит так:
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
</IfModule>
Я часами гуглял и теребил, кто-нибудь может помочь, пожалуйста?