2

この例では、2 種類のクエリ文字列を示します。Web サービスのクエリ文字列は、2 つよりも 1 つ多いように見える必要があることを知っています

  1. http://localhost/findbyproductcode/4xxheua
  2. http://localhost/findbyproductcode?productcode=4xxheua

私の質問は、php で最初のものをどのように管理するのですか? これは 2 つ目の URL の書き換えではないでしょうか。

#2 クエリ文字列を使用すると、GET 変数 (?productcode=4xxheua) を処理し、この productcode でいくつかのデータベースをチェックし、いくつかのデータを送り返す findbyproductcode.php ページがあると思います。

#1はどのように機能するはずですか?4xxheua.php が必要ですか? (明らかにそうではありません...) ... 私はこれを理解していません。

4

4 に答える 4

2

2 よりも 1 を好む唯一の理由は、1 の方が意味的に直感的だからです。

次のような URL を持つことは理にかなっています。

http://www.myblog.com/article/2012-04-29/i-did-nothing-all-day

それよりも

http://www.myblog.com/index.php?page=article&id=23423

おそらく、SEO スコアにも役立ちます。

マシンがマシンと対話するように、単に Web サービスを構築している場合は、URL がどのように見えるかは問題ではありません。また、すべての入力を受け入れ、入力データに基づいて内部で「ルーティング」を行うURL を 1 つだけ持つこともできます。

于 2012-04-27T20:14:53.697 に答える
1

API を作成しようとしている場合、やらなければならないことがたくさんあります - はい、書き換えが必要ですが、すべてのパラメーターのページが存在する必要はありません - Luracast には、開始するために ed restler と呼ばれる優れたオープンソースの Rest API があります。と。

于 2012-04-27T20:14:55.950 に答える
1

#1 を達成するための 1 つの例

1: イメージ、css(など) を含まないすべてのパスをroot/index.php(Apache の mod_rewrite など) に送信します
。 2:で、または別の方法でindex.phpパラメーターを取得します。 3: 解析して処理します。$_SERVER['pathinfo']

Apatche と mod_rewrite を使用している場合は、次のドキュメントを確認してください。

于 2012-04-27T20:38:53.370 に答える
0

ええ、URL の書き換えだけです。現在、Symfony 1.3 を使用しており、htaccess は次のようになっています。

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
  RewriteEngine On

  # uncomment the following line, if you are having trouble
  # getting no_script_name to work
  #RewriteBase /

  # we skip all files with .something
  #RewriteCond %{REQUEST_URI} \..+$
  #RewriteCond %{REQUEST_URI} !\.html$
  #RewriteRule .* - [L]

  # we check if the .html version is here (caching)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f

  # no, so we redirect to our front web controller
  RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

この場合、index.php をコントローラーにするだけで、この vhost のすべての URL をコントローラーに送信できます。簡単!

于 2012-04-27T20:45:11.977 に答える