0

プラットフォーム: Windows 7 Pro 64 ビット

開発マシンに Apache 2.2 をセットアップしています (基本的には WAMP セットアップ)。メインの htdocs に Code Igniter ベースの Web サイトをいくつかインストールしています。ただし、メインの htdocs ディレクトリの下にあるサブディレクトリの大文字と小文字の処理に行き詰まっています。

.htaccess (htdocs の下の /CILearn ディレクトリにあります) で問題が発生している場所は次のとおりです。

    RewriteEngine on
    RewriteBase /CILearn/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /CILearn/index.php/$1 [NC,L]   

サブディレクトリは、htdocs の下の CILearn です。したがって、URL は次のようになります。

    localhost/CILearn
    localhost/CILearn/site
    localhost/cilearn

これで機能し、「サイト」はコントローラーなので、index.php のリダイレクトが機能します。

これは動作しません:

    localhost/cilearn/site

誰かがこれらのルールがどこにあるべきか、なぜケースを処理しないのかを説明できますか?

4

2 に答える 2

1

これは、ファイル システム パスで大文字と小文字が区別される場合に発生する可能性があります。ここには 2 つのオプションがあります。

ルート ディレクトリで使用mod_spelingします .htaccess ( /CILearn/.htaccessではありません)

CheckSpelling on
CheckCaseOnly on

mod_speling次のようなものでアクティブ化されていることを確認してください

LoadModule speling_module /path/to/apache2/modules/mod_speling.dll

RewriteRuleまたは、ケースの固定を追加することもできますcilearn。これは、ルート ディレクトリ .htaccess で行う必要があります。

RewriteEngine on
RewriteRule ^cilearn/(.*) /CILearn/$1 [NC,L]
于 2013-03-27T09:25:16.760 に答える
1

削除する

RewriteBase /CILearn/

もう一度テストしてください。詳細については、このページhttp://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebaseを参照してください。RewriteBase

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /CILearn/index.php/$1 [NC,L]   
于 2013-03-27T08:51:06.857 に答える