3

に、という名前のディレクトリが存在しない場合WordpressなどのURLを持つことができます。sitename.com/post-titlepost-name

私はindex.php(またはそうかもしれない404 page)そのような種類の要求を処理しているに違いないと思います。

誰かがこの背後にある正確なトリックを説明してください...

4

3 に答える 3

4

このページでModRewriteの基本について読んでください。これは、ブラウザアドレスを変更せずに、リクエストコンテンツを解析し、それを「実際の」ページにリダイレクトできるようにするApacheモジュールです。

あなたがこれを持っているとしましょう:

 RewriteRule ^post/([0-9]+)?/?([0-9]+)?/?$ /index.php?p=$1&page=$2 [QSA]

このような書き換えルールでは、リクエストアドレスは次のようになります。

www.mysite.com/post/10/2

リダイレクトされます:

www.mysite.com/index.php?p=10&page=2

そして、これは両方の美学の検索エンジン最適化の観点からより良いです。

具体的には、WordPressでは、すべてのリクエストがindex.phpページにリダイレクトされます。このページには、解析結果に応じてコンテンツを読み込むリクエストの内部「パーサー」が含まれています。

नमस्ते!

于 2013-01-21T13:47:10.597 に答える
2

index.phpがそのような種類のリクエストを処理しているに違いないと思います。

その通り。

彼らはすべてのリクエストを.htaccessルールを介してindex.phpにリダイレクトしています。あなたがあなた自身のアプリケーションで彼らの解決策を採用することを考えているなら-しないでください。今日、この手法のより良い実装があります。これが例です。

于 2013-01-21T13:48:45.237 に答える
1

使い方:

mod_rewriteは、特定のパラメーターに一致する要求を受け取り、それらを他の場所にリダイレクトできます。WordPressの場合、すべての応答(*)が受け入れられ、URLを分割する標準ルーター($ _SERVER ["REQUEST_URI"])を含むindex.phpページに転送され、保存されているURLの構成と照合され、正しいURLが読み込まれます。コンポーネント(カテゴリ、投稿、ページなど)

于 2013-01-21T13:51:11.773 に答える