0

URL にスラッグ (例: タイトル) のみが表示されるように、cake アプリケーションの URL を書き換える必要があります。たとえば、www.site.com/users/view/1 (コントローラー/アクション/ID) のようなケーキの URL がある場合、ユーザーのニックネームが vikram.sinha (ID なし、アクションなし、コントローラーなし、または URL 内のその他のもの)。

保存する前にタイトル(スラッグ)が一意であることを確認しています。私ができる最善のことは次のとおりです。

www.site.com/profile/vikram.sinha 以下のルートを追加してください。

Router::connect('/profile/:slug', array('controller' => 'users', 'action' => 'view'),
        array(
            'pass' => array('slug'),
        ));

私が直面している問題は、URL からプロファイルを削除する必要があることです。slug の前に何かを追加せずに Cake で URL を書き換える方法が見つかりませんでした。

または、htaccess を直接使用して URL を書き換えることもできますが、それも苦手です。誰かが htaccess の使用を提案している場合、変更する必要がある URL は www.site.com/users/view/vikram.sinha であると想定してください。

ありがとう!

4

1 に答える 1

1

あなたの最善の策は、各スラッグが /r/ で始まる reddit のようなことをすることです。

例:

mysite.com/u/johnsmith

次に、ルートで次のようなことができます。

Router::connect('/u/:slug/*', array('controller'=>'users', 'action'=>'view'), 
    array('pass'=>array('slug')));

本当にやりたくない場合は、次のようなものを使用できます。

Router::connect('/:slug/*', array('controller'=>'users', 'action'=>'view'), 
    array('pass'=>array('slug')));

ただし、mysite.com/ の後に渡されたものはすべて uname であると見なされるため、他のコントローラー、プラグインなどには独自のルートが必要になることに注意してください。最高のアイデアではありません。

于 2013-04-01T14:06:35.040 に答える