ユーザー提供のコンテンツを使用して URL を生成します。
URL の 1 つに titleKikar Habusiness - émission du 2/12/12
があり、それが URL に変換されました/url/Kikar+Habusiness+-+émission+du+2%2F12%2F12
。
404 に%2F
なります。URL から を削除すると、正常に動作します。
興味深いことに、私の PHP コード (Yii を使用) は通常、カスタム ページで 404 を処理しますが、これはデフォルトの Apache 404 を返します。
.htaccess の読み取り:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
私の Yii parseUrl の読み取り:
public function parseUrl($manager, $request, $pathInfo, $rawPathInfo) {
if(preg_match('%^url/(\d+)%',$pathInfo,$matches)){
$_GET['id'] = $matches[1];
return 'url/view';
}
else if(preg_match('%^category/(\d+)%',$pathInfo,$matches)){
$_GET['id'] = $matches[1];
return 'category/view';
}
return false;
}
私のURLスラッグジェネレーターは次のとおりです。
public static function slug($title){
$title = ToolBox::trim($title,60,false);
$title = urlencode($title);
return $title;
}
一部のコンテンツは非ラテン語 (ヘブライ語やアラビア語など) であるため、基本的な ASCII URL を使用できないことに注意してください。