PHP Codeigniter - Apache虚拟主机设置问题

Til*_*ter 4 php apache codeigniter vhosts

我一直在努力.希望你们能帮忙.我无法找出错误所在.

的httpd-vhosts.conf

NameVirtualHost 127.0.0.1

<VirtualHost 127.0.0.1>
    DocumentRoot /opt/lampp/htdocs
    ServerName localhost
</VirtualHost>

<VirtualHost 127.0.0.1>
    DocumentRoot /home/tilman/Sites/mysite/www
    ServerName mysite.lo
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

/ etc/hosts文件

127.0.0.1   localhost
127.0.0.1   mysite.lo
Run Code Online (Sandbox Code Playgroud)

config.php文件

$config['base_url'] = "http://mysite.lo";
$config['index_page'] = "";
Run Code Online (Sandbox Code Playgroud)

WWW /的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
    ErrorDocument 404 index.php
</IfModule>
Run Code Online (Sandbox Code Playgroud)

现在http://mysite.lo向我展示默认控制器.http://mysite.lo/index.php同样.那样做http://mysite.lo/index.php/welcome.

http://mysite.lo/welcome事实并非如此.

http://localhost/mysite/www/welcome 按预期工作.


编辑:我想将系统和应用程序移出Web根目录.所以我的文件结构如下:

application/
system/
www/
 '- index.php
Run Code Online (Sandbox Code Playgroud)

在index.php中,我当然改变了系统和应用程序文件夹的路径.

小智 9

听起来你有重写mod/htaccess问题而不是VirtualHost问题.你有没有确定你有一个块,如

<VirtualHost *:80>
  ServerName mysite.lo
  <Directory /home/tilman/Sites/mysite>
    AllowOverride All
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

你的配置文件中的某个地方?/index.php和/index.php/welcome工作的事实告诉我,这是重写mod无法正常工作......