私はコードイグナイターにかなり慣れていないので、すべてのリンクにこのパス "/folder/file" があります。したがって、リンクを呼び出すと、次のように表示されるはずです。
www.website.com/folder/file
しかし、代わりにクリックすると、次のようになります。
www.website.com/index.php/folder/file
どうすればそれを防ぐことができますか? それも相対的であってほしい。
設定で何かに触れる必要がありますか?
私はコードイグナイターにかなり慣れていないので、すべてのリンクにこのパス "/folder/file" があります。したがって、リンクを呼び出すと、次のように表示されるはずです。
www.website.com/folder/file
しかし、代わりにクリックすると、次のようになります。
www.website.com/index.php/folder/file
どうすればそれを防ぐことができますか? それも相対的であってほしい。
設定で何かに触れる必要がありますか?
URL から index.php を削除する場合は、以下の手順に従ってください。
1) アプリケーション ホルダーと並行して .htacess ファイルを作成し、次のコードをコピーするだけです。
RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
2) 以下のように、アプリケーション フォルダーの config.php で $config['index_page'] を空白に変更します。
$config['index_page'] = '';
3) Apache の「rewrite_module」を有効にします。
IIS を使用している場合は、ルート ディレクトリに web.config というファイルを作成し、以下を貼り付ける必要があります。
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
<rewrite>
<rules>
<rule name="RuleRemoveIndex" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true"/>
</rule>
</rules>
</rewrite>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
これをチェックして
config.php について
$config['index_page'] = 'index.php';
.htaccess について
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d