これを実装する方法は、次を使用して拡張することでした\Fuel\Core\Router
。ルーター クラスは、ルーター クラス メソッドを変更するのではなく、 security.uri_filter
fromのメソッドを介して渡された URI で動作します。ルーター拡張機能でその配列にコールバックを追加しました。config.php
class Router extends \Fuel\Core\Router
{
public static function _init()
{
\Config::set('security.uri_filter', array_merge(
\Config::get('security.uri_filter'),
array('\Router::hyphens_to_underscores')
));
}
public static function hyphens_to_underscores($uri)
{
return str_replace('-', '_', $uri);
}
}
app/config/config.php
クロージャーまたはクラス メソッドまたは関数の呼び出しを使用して、構成配列に直接簡単に追加することもできます。
これの欠点は、/path_to_controller/action と /path-to-controller/action の両方が機能し、検索スパイダーにこれを示さない限り、重複コンテンツの SEO 問題が発生する可能性があることです。これは、両方のパスがどこか、つまりサイトマップなどで参照されていることを前提としています<a href="">
。