0

現在のパターンは、 qcid[0-9]で、name読み取り可能でエンコードされている必要がある場所http://example.com/questions.php?qcid=25&name=java にしたいと考えています。複数の単語で構成されている場合は、単語の間に「-」ハイフンを挿入する必要があります。たとえば、オブジェクト指向http://example.com/25/java

4

2 に答える 2

1

.htaccess で

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([0-9]+)/([a-z0-9\-]+)(?!(.css)|(.js))$ questions.php?qcid=$1&name=$2 [NC]

PHP では、名前を取得してハイフンを取り除き、必要に応じて大文字を修正する必要があります。例として、名前を小文字のキャメルケースにしたいとしましょう:

$_GET['name'] = "this-is-a-test-name";

$name = '';
$exploded = explode('-',$_GET['name']);
foreach($exploded as $piece) {
    $name .= ucfirst($piece);
}
// If you have PHP >= 5.3
// $name = lcfirst($name);
// Otherwise
$name{0} = strtolower($name{0});

echo $name;
于 2012-11-21T07:58:50.080 に答える
1

これは、数字で始まり、次にスラッシュ、次に任意の URL を取得し、上記のように変換します。ただし、ある種の URL エンコーディング/デコーディングが必要な場合は、questions.php スクリプトでそのビットを処理する必要があります。

RewriteRule ^(\d+)/(.+) /questions.php?qcid=$1&name=$2 [NC,L]
于 2012-11-21T07:54:56.507 に答える