У меня есть Codeigniter на Ubuntu 10 (LAMP). У меня есть файл 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-адресом, мой базовый сайт находится под папкой «дорт», поэтому мы называли это следующим образом: http: // some_ip / dort
теперь мы сопоставили виртуальный хост с дортом, поэтому мы называем его следующим: http://demo.dort.com/ и вдруг ничего
работает, за исключением страницы входа (index.php). Я изменил $ config ['base_url'] в config.php, но я
продолжайте получать 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
<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
Выше решение работало для меня. Я просто хочу выделить одну вещь. Убедитесь, что у вас есть AllowOverride All, а не AllowOverride None в файле виртуального хоста на / etc / apache2 / sites-available / default