0

今、ユーザーが次のようなものを入力すると

site.com/shirt/shirtid

それらは RewriteRule によってリダイレクトされます

RewriteRule ^shirt/([a-z][0-9a-z_]+)$ /utils/phurl/redirect.php?alias=$1 [L,R=301]

次に、そのエイリアスが割り当てられているページにリダイレクトします。

ただし、PHP リダイレクトが (header(Location:$url) を介して) 発生すると、URL が site.com/shirt/shirtid から短縮したい非常に長い URL に変更されます。このリダイレクト プロセス全体を通して元の URL を維持する方法はありますか?

例: ユーザーが site.com/shirt/shirtid に移動すると、リダイレクト プロセスが発生し、アドレス バーの URL は site.com/shirt/shirtid のままです

4

1 に答える 1

1

PHP 経由でリダイレクト ヘッダーを渡すと、デフォルトでページ読み込みリダイレクトが発生します。もちろん、任意の URL 形式にリダイレクトできます。ただし、元の URL と同じにする方法がわかりません。これを行うと無限のリダイレクト ループに陥ってしまうからです。

PHP では、実際にリダイレクトを行うのではなく、エイリアス値 (基本的にはフロント コントローラー パターン) に基づいて条件付きでページ ロジックのセットを含めるように思えます。

于 2013-03-29T15:41:50.813 に答える