2009-02-27 11 views
3

ご挨拶。URLを隠すためにnginx rewriteを使用していますか?

私は正規表現と書き換えを試みてきましたが、私はそれを初心者です。私はシンプルなサイトを持っていますが、私が望むのはdomain.com/file.php?var=valueをdomain.comに書き直して、サイトのナビゲーション中にアドレスバーにdomain.comしか表示されないようにすることです私がサイトをより複雑にするようになっても)。

単にサイトがのを育てる場合、私はむしろ、いくつかの「きれいなURL」アプローチを作ると思いますが、私は基本的なPHPではまだだが、URLを凍結だと私は私が1.1

を上のHTTP/RTFMする必要があると思い感知話します

答えて

3

通常、このタイプの「クリーンな」URLは、サイト全体のラッパーフレームで実現されます。ブラウザはそのフレームのURLのみを表示し、その内容は何でもかまいません。

しかし、実際にはお勧めしません。ユーザーが「汚い」URLにブックマークを付ける場合があるからです。

このタイプのURL難読化によって、上級ユーザーのユーザビリティが低下します。

冗談ではありませんが、通常は、サイトの使い勝手よりもアドレスバーがどのようなものかを気にする「芸術的な」サイトで、この種のURL難読化が行われます。ユーザビリティを向上させることでユーザを幸せにすることは、長期的にはより良いアプローチです。 、あなたのユーザーがIM経由で彼らの友人に言っページへのリンクを送信することができません。

+0

私はそれはサイトが「芸術家気取り」であるが、ちょうどフラッシュを使用してFlashムービーの変化は、URLに影響を与えるようにする方法を知っていないではなかったことを推測します。それは非常に扱いにくく、javascriptの魔法を必要とします。 –

0

私はURLを凍結推測はそうここにマーケティングの観点だけでなくからと欠点は、だ、マーケティングの欲望によって駆動され、電子メール、またはFacebookに登録する必要があります。

0

アドレスバーにphp変数を表示することは安全です(とにかく一部のブラウザのステータスバーに表示されますが...)。理想的には、ユーザーは舞台裏でサイトが何を使用しているのかわからないでしょう。私は最初にエラーページを構成しています。そして、はい、美学にも。私がdomain.com/foo/barに書き換えることができるなら、私は満足しているでしょう。そのような要求があれば、nginxは "醜いURLへの翻訳"を処理すると仮定します。これは位置指示文で行うと思います。しかし、domain.com/file.php?var1=valueを持っている& var2 =値はちょっと私を悩ます、私は私がサイトをあまりにも暴露していると感じさせる。

フレームは推奨されません(特に '検索エンジンのコサ)と私はxhtml 1.1 Strict(これまでのところとても良い)に固執しようとしています。コンテンツがうまく設計されていればブラウザの選択、直感的な方法などにかかわらず簡単に操作できます...

私はうれしいwebdesignに関するrtfm素材テクニック、PHP、http/1.1など、あなたが "ええ、それは私が探していたものです!"午前4時に

:)おかげ[私はこのサイトの権利を理解している場合、これはオリジナルのポストに、ではないの答えへの返信もダメで...申し訳ありません]

+0

domain.com/foo/barとfile.phpの違いは何ですか?var1 = value&var2 = value?多くのウェブサイトでは、MSのものであっても、最初のフォームが使用されます。しかし、それがあなたが望むなら、nginxの正規表現を書いてfile.phpを変換することができますか?var1 = value/file/var/value/ –

4

あなたはこのようなnginxの書き換えルールを使用することができます:

rewrite ^([^.]*)$ /index.php 

"。"が含まれていないすべての要求を送信する。あなたのindex.phpスクリプトに。あなたのPHPスクリプトでは、渡されたパラメータを取得するために要求URLを爆発し、その後にしたいPHPページを呼び出します。あなたはまた、すべてのPHPを処理するようにCodeIgniterのようPHPフレームワークに見ることができる

#URL /people/jack_wilson 
$url_vars = explode('/',$_SERVER['request_uri']); # array('','people','jack_wilson'); 
$page = $url_vars[1]; 
if($page == 'people'){ 
    $username = $url_vars[2]; 
    require('people.php'); #handle things from here. 
} 
-1

あなたのためにこれの側。

http://codeigniter.com/

+0

すべてがCIを使用するわけではありません。右 ? –

関連する問題