2

2 つの Codeigniter サイトがあり、一方は他方のサブディレクトリ内にあります。htaccess ファイルを変更して、両方から index.php を削除するのに助けが必要です。

最初のサイトは、http://subdomain.domain.comに格納されています/home/sites/subdomain/www/html/

2番目にhttp://test.subdomain.domain.com住んでいる/home/sites/subdomain/www/html/app_staging/

これは私の.htacessファイルです/home/sites/subdomain/www/html/

RewriteEngine On
# Rewrite the main domain
RewriteCond %{HTTP_HOST} !test.subdomain.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

# Rewrite the sub domain
RewriteCond %{HTTP_HOST} test.subdomain.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /app_staging/index.php?/$1 [L]

これにより、最初のサイトから index.php が削除されます。すべて問題ありません。2 番目のサイトでは、デフォルトのコントローラ フォームをロードできますhttp://test.subdomain.domain.comが、後続のページでサーバーから 404 が返されます。次のステップは何ですか?

4

1 に答える 1

3

.htaccess2 つのファイルをそれぞれ独自のルート CI フォルダー内に配置する必要があります。

個人的には、リクエストされたファイルやフォルダが によって処理されないように制限することを好みますRewriteRule

したがって、にある最初のファイルの場合/home/sites/subdomain/www/html/:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico|public)
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

もう 1 つは次の場所にあり/home/sites/subdomain/www/html/app_staging/ます。

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico|public)
    RewriteRule ^(.*)$ /app_staging/index.php/$1 [L]
</IfModule>

注:で処理したくない場合は、cssおよびその他のフォルダー( などpublic)を に追加する必要があります。RewriteCondRewriteRule

補足として、.htaccessファイル内で次を使用して、ディレクトリのリストを防止したい場合があります。

<IfModule mod_autoindex.c>
    Options -Indexes
</IfModule>
于 2013-08-06T09:50:13.520 に答える