4

这一直在做我的头脑。希望你们能提供帮助。我无法找出错误所在。

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>

/etc/hosts

127.0.0.1   localhost
127.0.0.1   mysite.lo

配置文件

$config['base_url'] = "http://mysite.lo";
$config['index_page'] = "";

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>

现在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

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

4

2 回答 2

9

听起来您遇到的是 rewritemod/htaccess 问题而不是 VirtualHost 问题。你确定你有一个块,比如

<VirtualHost *:80>
  ServerName mysite.lo
  <Directory /home/tilman/Sites/mysite>
    AllowOverride All
  </Directory>
</VirtualHost>

在您的配置文件中的某个地方?/index.php 和 /index.php/welcome 工作的事实,告诉我它是重写模块不起作用......

于 2010-11-05T09:45:34.353 回答
0

在您的虚拟主机中,您不需要这个吗?

<VirtualHost 127.0.0.1>
    DocumentRoot /home/tilman/Sites/mysite
    ServerName mysite.lo
</VirtualHost>

我不确定你是否需要这www部分。

于 2010-11-05T09:37:50.970 回答