6

次のようなすべてのクエリが欲しい

http://mysite.com/something/otherthing?foo=bar&x=y

のように書き換えられる

http://mysite.com/something/otherthing.php?foo=bar&x=y

言い換えれば、.php 拡張子を任意で普遍的にするだけです。

4

5 に答える 5

6

私ならこうします。基本的に、ファイルが存在しない場合は、.php を追加してみてください。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ $1.php [QSA,L]
于 2008-12-20T19:57:26.847 に答える
1

httpd.confとその内容を変更できる場合は、次のように入力することもできます。

ForceType application/x-httpd-php

呼び出されるすべてのパスがPHPファイルになるように強制されるため、ファイル内にあります。これはクエリ文字列でも機能すると思います。

于 2008-10-08T19:49:42.697 に答える
1

これは機能します:

RewriteCond %{QUERY_STRING} ^.+$
RewriteRule ^/?([^/\.]+)$ /$1.php [L]

アイデアは、クエリ文字列 (疑問符とその他のもの) があることを確認し、そうであれば、疑問符の前のものに拡張子がないかどうかを確認し、そうであれば、.php を追加することです。

于 2008-10-08T17:49:09.477 に答える
0

何かのようなもの...

RewriteRule /something/(.+)?(.+) /something/$1.php?$2

おそらくうまくいくでしょう。

于 2008-10-08T17:37:27.753 に答える
0

拡張子のないパスのみに一致します。

RewriteRule ^(([^/]+/+)*[^\.]+)$ $1.php

編集: 私のテストでは、クエリ文字列は自動的に渡されます。そうでない場合は、代わりにこれを使用できます。

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(([^/]+/+)*[^\.]+)$ $1.php?%1
于 2008-10-10T07:00:53.437 に答える