私は新しい Web アプリケーションで Codeigniter を使用しています。ページにフォームがあり、ポスト経由でサーバーにデータを送信し、そのサーバーはユーザーを私の Web サイトに返しますが、example.com/ のような醜いリンクで get を介してパラメーターを返しますid=12&コード=Xxxx
私がやりたいことは、可能であれば検索して見つけられない場合、これらの醜いリンクをフレンドリーなリンクに変換する方法です( example.com/12/Xxxx )
ありがとう
私は新しい Web アプリケーションで Codeigniter を使用しています。ページにフォームがあり、ポスト経由でサーバーにデータを送信し、そのサーバーはユーザーを私の Web サイトに返しますが、example.com/ のような醜いリンクで get を介してパラメーターを返しますid=12&コード=Xxxx
私がやりたいことは、可能であれば検索して見つけられない場合、これらの醜いリンクをフレンドリーなリンクに変換する方法です( example.com/12/Xxxx )
ありがとう
GETフォームを適切なURLに直接変換することはできません。それらは自動的に?key=val
フォーマットになります。
最善のオプションは、GETを適切なURLに変換するためのリダイレクトヘッダーを用意することです。
例えば:
$firstPart = $_GET['myKey'];
$secondPart = $_GET['mySecondKey'];
header('Location: ' . $requestURL . '/' . $firstPart . '/' . $secondPart);
get パラメータは基本的にどのWeb APIでも標準であるため、すべての API の修正をハックするよりも仲介者を作成するのではなく、それらを頻繁に使用することになるでしょう。
index.php と同じレベル (通常はサイトのルート) に新しいフォルダーを作成します。このフォルダを次のように呼び出しますmiddleman
index.php 経由でルーティングしてはならないファイル内middleman
のアイテムのリストにフォルダーを追加します。.htaccess
これで、使用する API ごとに、middleman
すべてのリクエストをサイトが理解できるものに変換する新しい .php ファイルをフォルダーに作成できます。
次に、外部 API をhttp://yoursite.com/middleman/api_name.phpに向けます。
仲介者を作成する理由は、Code Igniter が get 配列を消去するため、リクエストを処理して意味のあるものにフォーマットする前に削除されるため、Code Igniter 内で変換しようとすると、Code Igniter の範囲外で変換を実行する必要があるためです。 .
ファイルの例は次のようになります:
mysite.pingback.php
<?php
$from = $_GET['ip'];
$time = $_GET['time'];
$post = $_GET['id'];
header('location: ../mysite/pingback/'.$from.'/'.$post.'/'.$time);
?>
非常に単純なファイルです。ただし、外部 API に変更が加えられても、仲介者を変更するだけでよいため、Code Igniter アプリの動作には影響しないことも意味します。