.htacesss
RewriteCond %{REQUEST_URI} ^/api/(.+)$
RewriteRule ^api/(.+)$ /index.php?api=%1 [QSA,L]
ajax URLリクエストの例:'http://hostname.com/api/ext/list.php?query=de'
この形式のURLを次のindex.php?api = {requested_filename}&param1 = value1&param2 =value2..にリダイレクトできるようにしたい。
サイト全体がindex.phpのブートストラッププロセスで処理されるためです。このプロセスには、構成、テンプレートなどをロードするルーティング部分があります。
たとえば、jqueryコードを試してみると、リダイレクト後にPOSTデータが失われます。
$.ajax({
url: '/api/contact.php',
type: 'POST',
data: {
email: $("#contactEmail").val(),
name: $("#contactName").val(),
message: $("#contactMessage").val()
// etc ...
}
});
httpリダイレクトでデータを保存できないことを読みました。しかし、どのようにしてすべてのフレームワークがそれを回避するのでしょうか?私は多くのコードを記述しましたが、すべてがindex.phpを介してブートストラップされ、.htaccessファイルにはきれいなURLを有効にするための書き換えルールがあります。したがって、たとえばYiiでは、いくつかのPOSTデータを使用してURL「api / uploads / latests.json」を呼び出し、バックエンドのコントローラーがそのデータを受信します。ここで何が欠けていますか?
注:[P] mod_rewriteパラメーターをテストしましたが、このサーバーではmod_proxyが有効になっていないと思います。