私はここで新しく、あなたの助けが必要です。.htaccessとphpで遊び始めましたが、問題が発生しました。URL書き換えを行うときは、データベースから抽出した記事のタイトルである文字列をURLに渡します。問題は、文字列(タイトル)に多くの文字が含まれていて、URLのスペルが間違っていることです。例:localhost / news / php%5%is%outここで、%は空白です。すべてのタイトルをpreg_replaceでフォーマットしようとし、すべてのスペースを「-」で置き換えましたが、文字がたくさんあるので、preg_replaceなしでこれを行う方法があるかどうかを知りたいので、任意の文字列がクエリに適しています。news.phpでは、URLから文字列を取得し、それをデータベースのクエリに使用して、記事全体の本文を抽出します。
RewriteRule ^news/([a-zA-Z0-9._]+)/?$ /news.php?news_title=$1
これは私の.htaccessファイルなので、news.phpで$_GETを介して'news_title'変数を取得し、データベースにクエリを実行して、このタイトルのアーティコールを見つけます。だから私の質問は、私はこれをすべて間違っているのですか?これを行う他の方法はありますか?私はたった2日前にhtaccessを使い始めましたが、URLをもっとわかりやすくしたいと思っています。私の質問が明確であることを願っています。私を助けてくれるみんなに感謝します。
ほんの一例として、これは、URLの記号(; amp、%、?など)で変更されない文字列の通常のタイルを変換するために使用するものです。
function generateUrl($url) {
$v1 = preg_replace("/[\s\:\;\,\_\'\`\"\?\!\%\(\)\+\=\#\@\[\]\{\}\/]/", "-", $url );
$v2= preg_replace('/[-]{2,}/', '-', $v1);
$v3 = preg_replace('/^[-]/', '', $v2);
$final = preg_replace('/[-]$/', '', $v3);
return $final;
}