2009-08-05 11 views
0

.htaccessで何かをやろうとしていますが、わからないことがあります。素晴らしい作品htaccessマスク静的なURLを使った動的URL

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
:私は

まず最初は、次のコードを使用して.PHPの拡張子を隠しています。

今、私がやろうとしていると把握することができないよう、次のされています

場合は、ブラウザのアドレスバーにユーザーの種類「mywebsite.com/products?id=12345」、I IDに基づいてサーバーが適切な製品ページを提供し、製品IDが何であってもアドレスバーに「mywebsite.com/product」と表示するようにします。

これは可能ですか?はいの場合はどうですか?きれいな方法では、実際には不可能である

おかげ

+0

mywebsite.com/productにリダイレクトしますか?または、あなたは/ productsを使用できるようにしたいですか?id = 12345? – rpjohnst

+0

私はリダイレクトしたくありませんが、サーバーは "/ products?id = 12345"というようにページを提供したいが、プロダクトIDに関係なくブラウザーのアドレスバーに "/ products"としてURLを表示する。 – Enkay

答えて

0

。アドレスバーを変更するには、実際のHTTPリダイレクトを送信する必要があります。つまり、リダイレクトされたものであればブラウザから新しいリクエストを受け取り、その2回目のリクエストでもうプロダクトIDを取得できなくなります。

あなたはこれを回避することができる2つの方法があります。

  • は、サーバーがステートフル作る
  • ストアの製品は、これらの両方は悪いアイデアです

クッキーに。

どうしてこのことをやりたいのですか?ユーザーがあなたの製品をブックマークできないようにしたいですか?それはかなりユーザーに敵意があるようです。

+0

実際に私は質問をするために問題を簡素化しました。 製品ページには、現在ストックオプションの組み合わせのみを表示する動的フィルタリングシステムが使用されています。結果ページは「products?color = red&category = 456」のようになります。 オプションの組み合わせの在庫がなくなった場合にユーザーが特定の検索をブックマークできないようにするには、空の結果ページが表示されます。 htaccessでこれを行う方法がない場合、URL変数を使用する代わりにphpセッションを使用して顧客の選択肢を隠すようにフィルタリングシステムを変更することがあります。 – Enkay

0

私はAjaxとセッションを使用してフィルタリングプロセスをユーザーにシームレスにしました。私は何をしようとしていたのかはhtacessファイルでは不可能だと思います。とにかくありがとう!

関連する問題