0

.htaccess ファイルを使用してわかりやすい URL を作成したいと考えています。しかし、hrefで指定されたリンクをクリックすると

<a href="category.php?id= <?php echo "{$row['name']}"; ?>">Example </a>

$row['name']動的です。データは MySQL データベースに存在します。

コード (category.php):

<?php
if($_GET['id']){
  $result = $_GET['id'];
}
echo "this is {$result} page";
?>

これは、渡されたパラメーターを変数に格納し、$result画面に表示するだけです。

コード (.HTACCESS ファイル):

Options -Multiviews
RewriteEngine On
RewriteRule   ^website/(.+)$   category.php?id=$1

リンクをクリックすると、のhttp://mydomain.com/category.php?id=Rohit 代わりに のような URL が表示されますhttp://mydomain.com/website/rohit

ただし、手動で URL を書き込むhttp://mydomain.com/website/rohitと、同じページが表示されます。これは、.htaccess ファイルが機能していることを示しています。Example という単語をクリックすると、上記の URL を直接表示したいと考えています。

一例
ウィキペディアでバラク・オバマのページをクリックするとhttp://en.wikipedia.org/wiki/Barack_obama、元のリンクも機能しますhttp://en.wikipedia.org/w/index.php?title=Barack_obama。両方のページに同じデータが表示されます。ユーザーには 2 番目の URL は表示されませんが、もう一方の URL は表示されます。私は同じ種類の結果を達成したい。

URLを書き換えるようにリンクを書く方法は?

4

3 に答える 3

2

変化する

<a href="category.php?id= <?php echo "{$row['name']}"; ?>">Example </a>

<a href="website/<?php echo "{$row['name']}"; ?>">Example </a>
于 2012-12-30T10:38:31.970 に答える
2

Apache の mode_rewrite と mod_replace でこれを行うことは可能ですが、お勧めしません。両方の方法でそれをサポートしたいと思い、PHP を使用しているので、記述した URL を書き換える関数 (またはクラス/メソッド) を作成します。すなわち:

<a href="<?php getUrl('category.php', $row['name']}) ?>">Example</a>

このようにして、ユーザーの要求に基づいてさまざまな URL を処理できます。

function getUrl($phpfile, $argument) {

   if ('<some logic to check if user request is rewritten') {    
      return "website/" . $argument; 
   } else {    
      return $phpfile . "?id=" . $argument; 
   }
}
于 2012-12-30T10:45:14.597 に答える
0

URL の書き換えを使用している場合は、href で SEO に適した URL を独自に渡す必要があります。ベスト プラクティスとして、共通の関数を作成し、パラメータをその関数に渡し、href の SEO フレンドリーな URL を生成します。

または、category.php?id=123 のような URL を href ハードコードで作成する代わりに、website/123 のような href url

または、ユーザーが category.php?id=123 のようにページにアクセスし、ユーザーを web サイト/123 にリダイレクトする場合などのルールを定義する必要があります

于 2012-12-30T10:57:19.817 に答える