0

私はすでにこの質問に対する答えを検索し、それに関連する記事を見つけましたが、正確な答えは得られません。これはここにあります:PHP-ダッシュをスペースに置き換えるにはどうすればよいですか?

この関数を使用して、ブログのタイトルをSEO対応のURL文字列に変換しています。

//SEO Friendly URLS
public static function Seo($input){
    $input = str_replace(array("'", "-"), "", $input); 
    $input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8"); 
    $input = preg_replace("#[^a-zA-Z0-9]+#", "-", $input); 
    $input = preg_replace("#(-){2,}#", "$1", $input); 
    $input = trim($input, "-"); 
    return $input; 
}

これにより、「MyBlogTitle」のようなタイトルが「my-blog-title」に変換されます。これは良いことです。ただし、私は通常、データベースからブログを取得するためにURLでブログIDを渡しますが、本当にわかりやすいURLを維持しようとしています。

mysite.com/page.php?post=my-blog-post&id=1のように、タイトルの最後に2番目のクエリ文字列としてブログIDを渡すことができることは理解していますが、それでも問題はありません。.htaccessを使用して.phpと「?」を削除します URLからですが、IDを渡すときにきれいなURLを維持する方法がわかりません。

ブログのタイトルをURLクエリとして使用しながら、データベースをクエリするにはどうすればよいですか?

4

2 に答える 2

4

タイトルの URL フレンドリ バージョンは、スラッグと呼ばれることがよくあります。slug をデータベース テーブルに保存すると、それを使用して記事を取得できます。とにかくスラッグを保存して、スラッグが作成されると変更されないようにするのが最善です。

たとえば、SEO 機能のバグを見つけて修正したとしましょう。URL が変更される可能性がありますが、これは明らかに悪い SEO です。スラッグをデータベースに保存すると、その問題が回避されます。

スラッグを保存する場合、おそらく各ブログ カテゴリのスラッグも必要になるでしょう。このようにして、ファイルシステムをより厳密に模倣し、すべてのスラッグが完全に一意であることを確認する必要がなくなります。異なるディレクトリに同じタイトルの記事が存在することはまずありませんが、サイトを構築する際には考慮すべき事項です。

于 2013-02-19T04:52:01.373 に答える