最近、CodeIgniterを使用しようとしています。
デフォルトでは、このようなURIにindex.phpがあります
http://www.example.com/index.php/home
home
コントローラ内の機能です
しかし、私は望まないindex.php
ので、.htaccessファイルを作成しました。
Allow from all
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|img|robots\.txt|script|css)
RewriteRule ^(.*)$ index.php/$1 [L]
基本的に、条件が一致する場合を除いて、「index.php」が自動的に追加されます。
ただし、
これが重要です。次のようなURIの場合:http://www.example.com/home
すべてが正常に機能します。
このようなURIの場合:http://www.example.com/home/
その後、私のWebページの相対リンクがワイルドになります。
例:
css/common.css
にリダイレクトされたindex.php/home/css/common.css
結果、cssファイルが見つかりませんでした。
ログは次のようになります。
strip per-dir prefix: [dir to my site]/home/css/common.css -> home/css/common.css
applying pattern '^(.*)$' to uri 'home/css/common.css'
rewrite 'home/css/common.css' -> 'index.php/home/css/common.css'
add per-dir prefix: index.php/home/css/common.css -> [dir to my site]/index.php/home/css/common.css
trying to replace prefix [dir to my site]/ with /
internal redirect with /index.php/home/css/common.css [INTERNAL REDIRECT]
add path info postfix: [dir to my site]/index.php -> [dir to my site]/index.php/home/css/common.css
strip per-dir prefix: [dir to my site]/index.php/home/css/common.css -> index.php/home/css/common.css
applying pattern '^(.*)$' to uri 'index.php/home/css/common.css'
pass through [dir to my site]/index.php
どうすればこれを修正できますか?