できることなら.htaccessで済ませたかった。
新しくページを作成するとurlに「user_data」が追加される。
誰も幸せにならないこれを取り払う。
参考
マニュアル – 新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ
やること
- 「\src\Eccube\ControllerProvider」に行く
- 「FrontControllerProvider.php」を開く
- 以下の内容に変更
Before
$c->match('/'.$app['config']['user_data_route'].'/{route}', '\Eccube\Controller\UserDataController::index')->assert('route', '([0-9a-zA-Z_\-]+\/?)+(?<!\/)')->bind('user_data');
After
$c->match('/' . '/{route}', '\Eccube\Controller\UserDataController::index')->assert('route', '[0-9a-zA-Z_]+')->bind('user_data');
3.0.18環境下で42行目のところ。
念の為、元のをコメントアウトして追記するのがいいかも。
効果
1行書き換えるだけで「user_data」のないurlでやっていけるようになる。
これが
http://localhost/eccube3018/html/user_data/concept
こうなる
404 Error - Not Found
「user_data」付きのurlは無効になるので気になる人は.htaccessでリダイレクトさせるとかしたらいいんじゃないですかね、しなくていいと思うけど。
urlコードは通常通りでOK、「user_data」無しのurlが吐き出される。
{{ url(app.config.user_data_route, {'route': 'concept'}) }}
ベタ打ちでリンクを作ってなければっていう条件だけど、サイト内全部に反映されるので手間もない。
例外として、管理画面「ページ管理」の中の表記は「user_data」が入ったままだから注意。多分違う設定下から表示させてんだろうね。
ダメくせえなこれ
「user_data」だけじゃなくて他の所のも省略されてませんかねこれ
コメント