1

アプリケーションの API 用に単純な正規表現を作成しました。

^api/([^/]+)/([^/.]+)\.([^$/?=&]+)(?:\?(.*))?$

これは

/app/api/$1.php?action=$2&format=$3&$4

refiddle では、正規表現は完全に機能し、正しい URL を構築しますが、PHP スクリプトはactionおよびパラメータ以外の GET パラメータを報告していませんformat。/ に配置される .htaccess は

AddType image/svg+xml svg
RewriteEngine on
#If the URL is just /api, give them the docs
RewriteRule ^api/?$ /app/api/apidoc.php [L]
#Example api/user/update.json?x=fff&y=gggg
#http://refiddle.com/2ss
RewriteRule ^api/([^/]+)/([^/.]+)\.([^$/?=&]+)(\?(.*))?$ /app/api/$1.php?action=$2&format=$3&$4 [L]
#Example api/user/update?x=000&y=ffe
RewriteRule ^api/([^/]+)/([^/.&=]+)(\?((.*)*))?$ /app/api/$1.php?action=$2&$3 [L]

前もって感謝します。

4

1 に答える 1

2

追加のクエリ文字列パラメーターを取得しようとしないでください。QSA代わりに、フラグを追加してください。

RewriteRule ^api/([^/]+)/([^/.]+)\.([^$/?=&]+) /app/api/$1.php?action=$2&format=$3 [L,QSA]

それに応じて調整してくださいRewriteRule

于 2012-08-01T13:25:16.207 に答える