0

Web サイトの URL をもっときれいにしようとしています。URL のファイル拡張子の削除に関する多くの質問を既に見つけており、それを機能させることができました。http://www.site.com/news.php?id=1 のような URLをhttp://www.site.com/news/1/に変換して、さらに一歩進めたいと思います。この特定の質問に対する答えが見つからなかったので、ここで質問しています。どうすればそのような URL を達成できますか?

htaccess に既にあるルールを書き換えます。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([A-Za-z0-9\-]+/)*[A-Za-z0-9\-]+)?$ $1.php
4

1 に答える 1

0

あなたの質問に答える質問がたくさんあります。あなたがしなければならないことが2つあります:

  1. 醜い URL を派手な URL にリダイレクトして、ユーザーに派手な URL が表示されるようにする
  2. サーバーが実際に実行できるように、ファンシーな URL を醜い URL に内部的に書き換えます。

mod_rewrite のドキュメントはこちらにあります。このソリューションでは、 [END]Apache 2.3.9 以降でのみ使用できるフラグを使用します。ドキュメントはこちらにあります?最初のルールの末尾は、クエリ文字列を破棄します。

#Redirect ugly url to fancy url
RewriteCond %{QUERY_STRING} id=([^&]*)
RewriteRule ^news\.php$ news/%1/? [R]

#Internally rewrite fancy url to a usable url
RewriteRule ^news/([^/]*)/?$ news.php?id=$1 [END]
于 2013-07-25T18:59:53.090 に答える