0

現在、私のサイトで問題が発生しています。誰かがhttp://mysite.com/index.phpと入力すると、問題なく動作し、 index.php が表示されます。ただし、誰かがhttp://mysite.com/index.php/と入力すると、index.php はほとんどの画像を失い、フォルダーではないにもかかわらず、フォルダーとして機能するようになります。これは、すべての .php ファイルで発生します。

ただし、他のサイトでは、この問題は発生しません。私はこのhtaccessコードを使用することを考えていました:

# Remove garbage info after .php
RewriteRule ^([^.]+\.php)[/.] http://www.example.com/$1 [R=301,L]

私の質問は基本的に...この問題の最善の解決策は何ですか? さらに、上記の htaccess RewriteRule を使用すると、/test.php?id=5 のようなページは /test.php だけに取り除かれますか (基本的には .php の後のすべてを削除します)?

ありがとう、
マーク

4

1 に答える 1

0

これに対処する最善の方法は、サイトに単一のエントリポイントを作成することです。

したがって、.htaccessに次のように書くことができます。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

これで、常にindex.phpに入力し、そこからURLを使用して好きなことを行うことができます。

$url = rtrim( $url, '/' );
$request = explode( '/', $url );

私のチュートリアル/ブログを見てください。

于 2012-09-03T12:12:04.357 に答える