0

これを機能させるためにいくつかの YouTube ビデオをフォローしてきましたが、そうしたくないようです。これは私の .htaccess ファイルがどのように見えるかです:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule RewriteRule ^(.*)$ index.php/$l

私は .htaccess に完全に慣れていません。どのように機能するかは完全にはわかりませんが、私の常識では、ファイルを作成し、それを .htaccess と呼び、index.php と同じフォルダーに配置するように指示されていますよね?

したがって、index.php/foo/bar または /foo/bar/ に移動すると、404 エラーが発生します。

考えられる問題は何ですか?PHP 5.3.10 がインストールされた Windows 2008 サーバーです。

4

1 に答える 1

1

あなたの最後の行の始まりとして

RewriteRule ^(.*)$ index.php/$l

そして、期待どおりに動作するはずです...既存のファイル/フォルダーに対するリクエストを除くすべてのリクエストをに渡しますindex.php

.htaccess、リクエストがヒットした任意のフォルダに配置できますURL...唯一の違いは、配置URLされているフォルダに相対的なのベース.htaccessです

例:

/folder1
 .htaccess
 index.php
 /folder2
 .htaccess
 index.php

ファイルが処理される場合に何もアクセスし/test.phpない場合(リクエストとは関係ありません。.htaccessURI

にアクセス/folder1/test.phpすると、対応する.htaccessinfolder1が使用され、$1inRewriteRuleが表示されtest.php/folder1/が から削除されますURI

アクセス/folder1/folder2/test.phpすると似ています... Apacheはfromを使用.htaccessfolder2ます... fromのものfolder1は無視されます(少し直感的ではありません)

于 2012-12-04T13:46:19.960 に答える