0

はい、私はこれが何百回も尋ねられたことを知っています. しかし、実際に機能するバージョンが見つかりません。現在、これまでに試したものはすべて削除.phpで機能しますが、それが問題の始まりです。$_GET私のサイトのいくつかのページはリクエストに依存しています。たとえばprofile、URL http://www.example.com/profile?username=Systemにアクセスすると 404 が返されますが、それがなくても問題なく?username=System動作します。私が持っている現在のコードは

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
4

2 に答える 2

2

[QSA]RewriteRule の最後に (Query String Attached)が必要です。

RewriteRule ^(.*)$ $1.php [QSA]
于 2013-01-15T19:40:00.787 に答える
1

これを試すことができます:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING}  .       [NC]
RewriteCond %{REQUEST_URI}  ^/([^/]+) [NC]
RewriteRule .*   %1.php               [L]

これを黙ってマッピングします

http://www.example.com/ScriptName?key1=val1

に:

http://www.example.com/ScriptName.php?key1=val1

于 2013-01-15T20:14:26.580 に答える