0

同様の質問をここに投稿しました。ただし、これは何をすべきかについてのアドバイスを得ることに関するものでした。何をすべきかがわかったので、その方法について少し助けを求めています!

基本的に、私はほぼ 100% 動的な Web サイトを持っています。すべての Web サイト リンクは PHP を使用して生成され、すべてのページは php のインクルード/コードで構成されています。URLを改善することでサイトのSEOを改善しようとしています(他の質問で述べたように)、少し苦労しています.

サーバー上の素敵なURLを醜いURLに書き換えるmod_rewriteを使用しています。したがって、私が必要としているのは、醜い URL (ページ内の PHP コードから生成されたもの) をより適切な URL に変換することです。

解析する必要がある URL は次のとおりです (これらは他の質問にもあります)。

/index.php?m=ModuleType
/index.php?m=ModuleType&categoryID=id
/index.php?m=ModuleType&categoryID=id&productID=id
/index.php?page=PageType
/index.php?page=PageType&detail=yes

上記の URL を解析してほしいのは次のとおりです。

/ModuleType
/ModuleType/CategoryName
/ModuleType/CategoryName/ProductName
/PageType
/PageType/Detail

ガンボによって投稿された他の質問の例がありますが、それが何をしているのかが少し面倒で不明確であると感じました。

誰かがこの問題を解決するのを手伝ってくれますか?

前もって感謝します。

4

4 に答える 4

2

私はあなたが何を求めているかを理解していると思います... URL の書き換えはすべて完了しましたが、ページ間のすべてのリンクは古い URL 構文を使用しています。

これを回避できる唯一の方法は、何らかの正規表現検索を実行してリンクを置換し、新しい構文を使用することです。すべてのリンクが動的に生成される場合、これはもう少し複雑になりますが、これを行う必要があまりないことを願っています。

現時点でリンクがどのように生成されているかを確認しないと、コードを変更する方法を判断するのは困難です。ただし、次のように機能すると思います。

<?php echo "<a href='/index.php?m=$ModuleType&categoryID=$id'>"; ?>

したがって、これを次のように変更します。

<?php echo "<a href='$ModuleType/$id'>"; ?>

頭のてっぺんから、構文に誤りがあった場合は申し訳ありません...

于 2009-10-05T12:18:20.070 に答える
1

Palantir が書いたように、これは mod_rewrite と .htaccess を使用して行われます。正しい書き換え条件を .htaccess に取得するには、Mod Rewrite Generator (例: http://www.generateit.net/mod-rewrite/ ) を確認することをお勧めします。とても簡単になります。

于 2009-10-05T09:58:51.110 に答える
1

私があなたの質問を誤解していない限り、あなたは「醜い」URLを解析せず、PHPスクリプトが呼び出されるので$_GET[]、パラメーター(m、categoryID、productID)とそれらを組み合わせて素敵なURLを作成します難しすぎます (1 つのパラメーターが存在するかどうかを確認し、文字列を連結するためのちょっとしたロジックです)。

于 2009-10-05T09:01:04.710 に答える
1

URL を正しいページにディスパッチするフロント コントローラーが必要です。

  1. Apache は .htaccess のルールを使用して URL を書き換え、書き込まれたものはすべて index.php?q= にリダイレクトされます。たとえば、http://example.com/i/am/hereと入力すると、index.php?q=/i/am/here が呼び出されます。
  2. Index.php は $_GET["q"] からのパスを解析し、何をすべきかを決定します。たとえば、ページを含めたり、データベースにアクセスしてパスを調べたり、適切なコンテンツを取得して印刷したりすることができます。

まさにそれを行う .htaccess の実例 (?q=path で index.php にリダイレクト) が必要な場合は、drupal がどのようにそれを行うかを見てください:

http://cvs.drupal.org/viewvc.py/drupal/drupal/.htaccess?revision=1.104

于 2009-10-05T09:02:31.927 に答える