.htaccessの問題、既存の.phpファイルおよびsearch.php

.htaccess regex url-rewriting
.htaccessの問題、既存の.phpファイルおよびsearch.php

きれいにフォーマットされたurlの.htaccessで遊ぶのは初めてで、正しくやっているかどうかはわかりません。

私の現在の.htaccessファイルは次のようになります。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^search/(.*) search.php?query=$1 [L]
RewriteRule !\.(gif|jpg|ico|css|js|txt|xml|png|swf)$ index.php

私が欲しいのは、mysite.com / home / 56 / page-titleがindex.phpにアクセスし、そこで数値をフィルタリングして正しいインデックスページを読み込むことです。

その前に、URLがsearch.phpを指しているかどうかを確認し、そうであればmysite.com/search/the-search-termにリダイレクトすると、これも正常に機能します。

動作しないのは、mysite.com / control_panel.phpなどの特定の.phpファイルにアクセスしようとすると、index.phpに移動するだけですが、次の行でそれが起こらないようになっていると思いますか?

RewriteCond %{REQUEST_FILENAME} !-f

誰かが私にそれを説明できたら、それは素晴らしいことです:)

ありがとうございます。

  0  0


ベストアンサー

  • 1. *ルールの順序が重要

  • 2. * RewriteCondディレクティブは、それに続く1つのRewriteRuleにのみ適用されます。 同じ条件を複数のルールに適用する必要がある場合、それらを複数回記述するか、書き換え処理ロジックを変更する必要があります(複数のアプローチが利用可能)。

これを試してください。

RewriteEngine On

RewriteRule ^search/(.*) search.php?query=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(gif|jpg|ico|css|js|txt|xml|png|swf)$ index.php [L]

1


タイトルとURLをコピーしました