私はREST APIを設定しようとしています。たとえば、api/family
というURLがその情報を含むJSONオブジェクトを返します。しかし、スラッシュの後に何も付かないでapi/
をすると、私はisset($_GET['url'])
がtrue
であると言われています。私は最初にそれがいくらかの空白だと思ったので、配列をトリミングしようとしましたが、それはどちらの場合もありませんでした。一般的にはPHPコードは次のとおりです。私は私が間違ってhtacess
を設定することが可能というケースだとは思わないが、それは私が効果を持っているかもしれないと考えることができる唯一の他の事ですが
if (isset($_GET['url'])) {
echo "WRONG";
}
$_GET
変数(それはしないでください)。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule api/(.*)$ api/api.php?url=$1 [QSA,NC,L]
</IfModule>
isset
が本当に出力している理由を知る助けがあれば幸いです。
書き換えルールのおかげで常に*設定されています。値が*含まれているかどうかをチェックする必要があります。 –
前述のように、空の($ _GET ['url'])チェックを実行することができます – segFault
@JohnConde改善のための提案はありますか?私はなぜそれが起こっているのだろうと思う、urlはapi/api.phpになっている?url =言い換えればurlは "空の"値です。また、あまりにもずっと前に、私はlocalhost/api/api/api.phpにリダイレクトしていたので、改善の提案が大いに評価されるまで、メモをメモしておいてください。 – jimmyjacks