0

私が理解しているように、htaccessファイルを作成すると、すべてのApacheリクエストで物事のルックアップが必要になるため、スケーラビリティの問題が生じます(私が理解しているように、4つのファイルアクセス)。

アプリケーションがいつ「retty url」を検索する必要があるかを正確に知っているので、.httaccess ファイルをバイパスして、自分のファイル アクセスを介して検索する方法はありますか?

また、プリティ URL がどのように表示されるかを事前に知ることができます。マスキングを最もスムーズに行うにはどうすればよいですか?

以下に例を示します: すべての木のテスト ページを作成しました: http://www.comehike.com/outdoors/trees/trees.php

そして、私のアプリケーションは、作成するきれいな URL を知ることができます。
しかし、私はここに単一のtree.phpファイルを持っています: http://www.comehike.com/outdoors/trees/tree.php?tree_id=24

どうすればtree_id(dbルックアップ用)を取り、次のようにきれいに見えるようにすることができますか: http://www.comehike.com/outdoors/trees/oak-tree

ps - 私はphpを使用しています

4

2 に答える 2

1

きれいなURL(http://www.comehike.com/outdoors/trees/oak-treeなど)を作成するには、そのURLのどの部分がスクリプトであるかをapacheに指示する必要があります(そのURLがない場合、apacheはどのように知る必要がありますか)。「apacheに指示する必要があります」とは、apacheの構成を変更する必要があることを意味します。これを回避する方法はありません。(あなたが言及したパフォーマンスペナルティを使用して)または他の場所でそれを行うことができます。*.php.htaccess

apache構成の変更を最小限に抑えるためにできることは、メインルーターを1つだけ設定し(例:http://www.comehike.com/outdoors)、その下のすべてのパスを処理できるようにすることです。

于 2011-02-13T16:43:22.750 に答える
0

.htaccessファイルを使用するオーバーヘッドについてあまり心配する必要はありません。サーバーの負荷にはあまり影響しません。あなたのきれいなURLスキームに関しては、StackOverflow以上のものを探すことはできません!この質問のURLの構造に注意してください。次のようになります。

http://stackoverflow.com/questions/[ID]/[QUESTION]

ご想像のとおり、IDはSOのすべての質問に付けられた一意のIDです。次の質問(同等のツリー名)は、単なるダミーテキストです。の後に何かを変更して/4985258/、アドレスを再試行してみてください。それでもこの質問にあなたを送ります。これは、SOが使用するModRewriteがID以降のすべてを無視するためです。

あなたの場合、私はこのようなURL構造を提案します:

http://www.comehike.com/outdoors/trees/24/oak-tree

次のhtaccessmod_rewriteを使用します。

RewriteEngine On
RewriteRule ^/outdoors/trees/([0-9]+) /outdoors/trees/tree.php?tree_id=$1

これは、IDが含まれているすべてのURLと一致し、tree.phpスクリプトに送信されます。すべてのリンクにダミーのタイトルテキストを追加するのはあなた次第です。


編集htaccessファイルで発生 するわずかなパフォーマンスの低下が本当に心配な場合は、いつでもすべてのコードをhtaccessファイルからVirtualHost宣言に移動し、AllowOverride NoneApacheがhtaccessファイルを検索しないように宣言できます。/etc/apache2/sites-available/default通常、仮想ホストはLinuxまたはC:\apache\conf\vhosts.confWindowsで見つけることができます。

于 2011-02-13T16:38:41.870 に答える