Codeigniter在xampp上处理虚拟主机时删除index.php

时间:2012-10-01 23:39:29

标签: php apache .htaccess codeigniter

我以前的文件夹树是(带便携式xampp):(例如在D:驱动器根目录下工作)

/xampp/htdocs/application
/xampp/htdocs/system
/xampp/htdocs/themes
/xampp/htdocs/index.php etc..

现在我正在尝试转换到一个我可以使用多个项目的结构,所以新的树:

/xampp/htdocs
/web_projects/project-name/codeigniter/application
/web_projects/project-name/codeigniter/system
/web_projects/project-name/htdocs/themes
/web_projects/project-name/htdocs/index.php

htdocs中的 htaccess 文件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt)

# if Serves works on Linux OS
RewriteRule ^(.*)$ index.php/$1

# if Server works on Windows OS
# RewriteRule ^(.*)$ index.php?/$1

RewriteCond %{REQUEST_FILENAME} !-f

# if Serves works on Linux OS
RewriteRule ^(application|modules|plugins|system|themes|library|files) index.php/$1 [L]

# if Server works on Windows OS
# RewriteRule ^(application|modules|plugins|system|themes|library|files) index.php?/$1 [L]

httpd-vhosts.conf

NameVirtualHost *:8080

<VirtualHost *:8080>
    DocumentRoot "/xampp/htdocs"
    ServerName localhost
    <Directory "/xampp/htdocs">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:8080>
    DocumentRoot "/web_projects"
    ServerName welcome.localhost
    <Directory "/web_projects">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:8080>
    DocumentRoot "/web_projects/test/htdocs"
    ServerName test.localhost
    <Directory "/web_projects/test/htdocs">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

最后 etc / host

127.0.0.1 localhost
127.0.0.1 welcome.localhost
127.0.0.1 test.localhost
127.0.0.1 vstart # Alias for test

所有虚拟主机都在工作,即 http:// vstart:8080 / 正在运行,但是codeigniter在地址行中没有index.php时无法运行,因此路由无法正常工作。

我的 config / config.php 文件是:

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);

$config['index_page'] = '';

此套装在我之前的文件夹树中运行顺畅,现在无法正常工作。我挖掘互联网以找到失败的解决方案。

任何外眼都要抓住我做错的地方?

2 个答案:

答案 0 :(得分:2)

找到解决方案:

我需要做的就是将“AllowOverride All”添加到受尊重的vhost。

希望将来帮助某人。

答案 1 :(得分:-1)

新项目应放在“ htdocs

文件夹中

示例:

的xampp / htdocs中/的 new_project1 将/index.htm

的xampp / htdocs中/的 new_project1 / CSS

的xampp / htdocs中/的 new_project1 /图像

的xampp / htdocs中/的 new_project2 将/index.htm

的xampp / htdocs中/的 new_project2 / CSS

的xampp / htdocs中/的 new_project2 /图像