2

私の以前のフォルダツリーは(ポータブル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'] = '';

このセットは以前のフォルダツリーではスムーズに機能していましたが、現在は機能していません。私は失敗した解決策を見つけるためにインターネットを掘りました。

私が間違っているところを捕まえるための外の目はありますか?

4

2 に答える 2

2

解決策を見つけました:

私がする必要があるのは、尊敬される仮想ホストに「AllowOverrideAll」を追加することだけです。

希望は将来誰かを助けます。

于 2012-10-02T08:36:12.623 に答える
-1

新しいプロジェクトは、「 htdocs」のフォルダ内に配置する必要があります

例:

xampp / htdocs / new_project1 /index.htm

xampp / htdocs / new_project1 / css

xampp / htdocs / new_project1 / images

xampp / htdocs / new_project2 /index.htm

xampp / htdocs / new_project2 / css

xampp / htdocs / new_project2 / images

于 2012-10-02T00:49:54.687 に答える