4

私の CodeIgniter サイト (GoDaddy でホストされている) で、インデックス以外のページに移動すると、次のエラーが表示されます。

入力ファイルが指定されていません。

グーグルで調べてみると、原因は私の .htaccess 状況に関係しているようです。これが設定されている方法は、おそらく最終的に変更される可能性がありますが、私の CI サイトはメイン ドメインのサブディレクトリにあるということです。CI サイトとメイン ドメインには、それぞれ独自の .htaccess ファイルがあります。CI htacess ファイルは、applications フォルダーにあります。

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /SubDomain/index.php?$1 [L]
</IfModule>

そして、メインのhtaccessファイルはCIファイルから2レベル上にあり、次のように読み取れます。

RewriteEngine on
RewriteCond %{SERVER_PORT} 80
rewriterule ^(.*)$ https://www.MainDomain.org/$1 [r=301,nc]

残念ながら、これら 2 つの書き換えルールのセットが互いに競合しており、どうすればよいかわかりません。私はどちらの htaccess ファイルも変更できますが、それらを平和かつ調和的に連携させたいと考えています。ただし、これが htaccess とはまったく関係がない可能性もあります。

4

1 に答える 1

12

CI.htaccessはアプリケーション フォルダーにあるべきではありません。SubDomainフォルダーのルートにある必要があります。例えば/public_html/SubDomain/.htaccess

また、その中で.htaccess、次を設定する必要がありますRewriteBase

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteBase /SubDomain
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?$1 [L]
</IfModule>
于 2012-11-13T14:03:59.223 に答える