Я использую CodeIgniter и только что установил стек LAMP на облачный сервер Ubuntu 10.10.
Все работает отлично, и у меня включен модуль Apache userdir, так что мой домашний каталог находится по адресу / home / myapp / public_html
, и я получаю к нему доступ, перейдя по адресу servername / ~ myapp
.
К сожалению, перезапись .htaccess
не работает - это вызывает 404 сообщение , что файл /home/myapp/public_html/index.php
не может быть найден - a Ошибка 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>
Я много часов гуглил и возился, может кто-нибудь помочь, пожалуйста?