Проблемы с codeigniter на убунту - PullRequest
6 голосов
/ 22 февраля 2011

У меня есть Codeigniter на Ubuntu 10 (ЛАМПА).У меня есть файл htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /dort
#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php
#controller, previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /dort/index.php?/$1 [L]
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends
#the request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /dort/index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>

До сих пор мы подключали удаленный сервер с IP-адресом, мой базовый сайт находился в папке с именем «dort», поэтому мы привыкли называть его так: http://some_ip/dort

теперь мы сопоставили виртуальный хост с dort, поэтому мы называем его следующим образом: http://demo.dort.com/ и вдруг ничего не получается

, за исключением страницы входа (index.php).Я изменил $ config ['base_url'] в config.php, но я

продолжаю получать 404.

Пожалуйста, помогите :(

Ответы [ 2 ]

7 голосов
/ 11 ноября 2011

Вы использовали виртуальный хост?

У меня та же проблема, и решить с этим

1) Сделать виртуальный хост в моем случае так: файл / etc / apache2 / sites-available / default

<VirtualHost *:80>
    ServerAdmin admin@email.com
    DocumentRoot /var/www/dort
    ServerName yourdomain.biz #this domain must be define tld info.
    ErrorLog /var/log/apache2/error_2.log
    <Directory /var/www/dort>
        Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
                # Uncomment this directive is you want to see apache2's
                # default start page (in /apache2-default) when you go to /
                #RedirectMatch ^/$ /apache2-default/

    </Directory>

</VirtualHost>

2) Настройка хоста в файле / etc / hosts

127.0.0.1   localhost
127.0.0.1   yourdomain.biz
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

3) .htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # Send admin URL's to the admin controller (then skips the rest of the redirect rules)
    RewriteCond %{REQUEST_URI} ^/admin(.*)
    RewriteRule ^(.*)$ /index.php/admin/$1 [L]    

    # Redirects any request thats not a file or directory through to the main controller
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/main/$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.

    ErrorDocument 404 /index.php
</IfModule> 

4) Убедитесь, что при перезапуске apache не отображается ошибка

 Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

5) Перейдите, чтобы просмотреть и запустить этот URL http://yourdomain.biz

4 голосов
/ 19 июля 2012

Выше решение сработало для меня.Я просто хочу выделить одну вещь.Убедитесь, что у вас есть AllowOverride All вместо AllowOverride None в файле виртуального хоста в / etc / apache2 / sites-available / default

...