0

私はフレンドリーな URL に慣れていないので、基本的なものが欠けている可能性があります。

私のhtaccessには以下が含まれています:

 RewriteRule ^([a-zA-Z0-9-/+]+)/?$ /index.php?surf=$1

index.php 内では、次のようにリクエストを処理します。

switch ($_GET['surf']) {
    case "whatever":    
...

したがって、リンクは domain.com/home のようなもので、目的のために index.php を使用して home.php を含めます。

標準的なケースではすべてが機能しますが、誰かが次のようにディレクトリの名前をパラメーターとして入力した場合: domain.com/css

ページがぐちゃぐちゃになります。アドレスバーにはhttp://domain.com/css/?surf=cssが表示され、コンテンツは index.php (ホーム) のデフォルトのケースに似ていますが、スタイルなどはありません。

htaccess と index の後にhttp://domain.com/css/index.php?surf=cssにアクセスしようとしていると思います。

どうすればこれを修正できますか?

*アクセスしたい他のディレクトリにいくつかのindex.phpがあることに注意してください。

4

1 に答える 1

1

次の行を追加します。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-/+]+)/?$ /index.php?surf=$1

これにより、実際のファイルとフォルダーのリダイレクトが防止されます。

于 2013-07-31T11:50:43.080 に答える