2

Code Igniter を実行していますが、.htaccess は次のとおりです。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?$1 [L]
    RedirectMatch 404 /\\.svn(/.*|$)
</IfModule>

その後、 $_GET 変数が通過していないことに気付きました。

いくつかの指示に従って、Code Igniter と一緒に使用する .htaccess を作成し、.htaccess を に置き換えましindex.php?$1index.php/$1。これは Linux マシンでは機能しますが、Windows では機能しません。サーバー構成であることは確かですが、どちらの構成かわかりません。

私がアクセスすると仮定すると

http://localhost/directory/this_is_query/string_parameters?with_some=additional_ones

on .htaccessの$_SERVER['QUERY_STRING']値は次のとおりです。index.php?$1

string(31) "this_is_query/string_parameters" 

そしてindex.php/$1

No input file specified. 

私が持っているLinuxマシンでは:

string(31) "with_some=additional_ones"

での応答としてindex.php/$1

何かご意見は?


$_SERVER['QUERY_STRING']の最初の行で変数をデバッグしていますがindex.php、Code Igniter とのやり取りはまったくありません。

はい、持っていますmod_rewrite

これはCodeigniterと同じではありません 入力ファイルが指定されていません エラー

この質問をする前に、その質問を見ました。そして、私はまだ問題を抱えています。

新しい情報を追加しました。

4

2 に答える 2

1

使用する RewriteRule ^(.*)$ index.php/?$1 [L]

于 2012-10-11T21:49:09.510 に答える
1

クエリ文字列を最後に追加するQSA オプションが欠落していると思います。

RewriteRule \.svn/ - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

また、クエリ パラメータを整理しておくために、CodeIgniter で許可されている場合は、パラメータ名を設定することをお勧めします。

RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
于 2012-10-11T21:29:40.413 に答える