2012-02-22 37 views
0

動的URLを静的な見た目のURLにしようとしています。 これは私が今持っている典型的なURLです:私はそれがしたい http://www.somedomain.com/design/index.php?p=about.htaccess動的URLから静的URL

http://www.somedomain.com/about

はこれまでのところ、私はそれがこのように見えるように得ている:http://www.somedomain.com/design/about.html

はこれがありますRewriterule私は以下を使用しています:?

ありがとうございました! 非常に感謝!

答えて

0

「静的な」URIを与えるために書き換えルールを使用すると、NEVERが良いアイデアです。あなたが使用することができます

他のいくつかのアイデア:

  • それでindex.phpまたはindex.htmlと呼ばれるファイルにページ「約」ディレクトリ(フォルダ)を作成します。この方法でURLにhttp://example.com/about/と表示され、必要な情報を必要に応じて表示することができます。
  • GETメソッドの代わりにPOSTメソッドを使用してください。 http://example.com/about.php注:の後ろには?やその他のパラメータはありません)
  • 両方の方法を利用してページ遷移に「シームレスな」URIを与えます。
+0

現在のindex.phpは、他のディレクトリやデータベースから情報を動的に読み込みます。だから、おそらく私の状況ではうまくいかないでしょう。 – Rick

+0

PenguinCoder、それは良いアイデアだとは思えないかもしれませんが、それは非常に一般的な慣行であり、 "SEO最適化"された傾向はますます高まっています。これは主流の視点ではないので、「私の意見で」そのような一掃のステートメントを修飾する方が良いかもしれません:-) – TerryE

0

リック、あなたは正しい方向にあります。 Apacheリライトのドキュメントを読む必要があります。あなたのルールの

RewriteEngine On 
RewriteBase /

その後一般化:あなたのdocroot/.htaccessでそれを起動するために

Rewrite Rule ^(\w+)$  index.php?p=$1 [L] 

これはindex.phpに単語列のためのものであるすべての要求を書き換えます。一致が発生した場合、書き換えエンジンが.htaccessファイルを再スキャンするので、ループを作成しないようにする必要があることに注意する必要があります。この場合、置換文字列には "."という文字列が含まれており、パターンはありません。したがって、これは発生しませんが、より複雑な場合は、1つまたは複数のRewriteCond文でルールを 'ガード'する必要があります。再度、Apacheのドキュメントを読んでください。

関連する問題