Ubuntu 10(LAMP)上有Codeigniter。 我有一个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/,而且什么也没有
除了login页面(index.php)以外的作品。 我已经改变config.php $ config ['base_url'],但我
继续得到404。
请帮忙 :(
你使用虚拟主机?
我有同样的问题,并与此解决
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
<Ifmodulee 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] </Ifmodulee> <Ifmodulee !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 </Ifmodulee>
4)确保何时重新启动Apache不显示错误
Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for serverName
5)去浏览并运行这个网址http://yourdomain.biz
上面的解决方案为我工作。 我只想强调一件事。 确保在/ etc / apache2 / sites-available / default的虚拟主机文件中有AllowOverride All,而不是AllowOverride None