次のようなすべてのクエリが欲しい
http://mysite.com/something/otherthing?foo=bar&x=y
のように書き換えられる
http://mysite.com/something/otherthing.php?foo=bar&x=y
言い換えれば、.php 拡張子を任意で普遍的にするだけです。
次のようなすべてのクエリが欲しい
http://mysite.com/something/otherthing?foo=bar&x=y
のように書き換えられる
http://mysite.com/something/otherthing.php?foo=bar&x=y
言い換えれば、.php 拡張子を任意で普遍的にするだけです。
私ならこうします。基本的に、ファイルが存在しない場合は、.php を追加してみてください。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ $1.php [QSA,L]
httpd.confとその内容を変更できる場合は、次のように入力することもできます。
ForceType application/x-httpd-php
呼び出されるすべてのパスがPHPファイルになるように強制されるため、ファイル内にあります。これはクエリ文字列でも機能すると思います。
これは機能します:
RewriteCond %{QUERY_STRING} ^.+$
RewriteRule ^/?([^/\.]+)$ /$1.php [L]
アイデアは、クエリ文字列 (疑問符とその他のもの) があることを確認し、そうであれば、疑問符の前のものに拡張子がないかどうかを確認し、そうであれば、.php を追加することです。
何かのようなもの...
RewriteRule /something/(.+)?(.+) /something/$1.php?$2
おそらくうまくいくでしょう。
拡張子のないパスのみに一致します。
RewriteRule ^(([^/]+/+)*[^\.]+)$ $1.php
編集: 私のテストでは、クエリ文字列は自動的に渡されます。そうでない場合は、代わりにこれを使用できます。
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(([^/]+/+)*[^\.]+)$ $1.php?%1