ご質問が正しく分かった場合は、/community/*
へのリクエストをResourcesController
に送信したいと考えています。あなたはapp/config/routes.php
に以下を追加することでこれを達成することができます。
/**
* Rename /resources/* to /community/*
*/
Router::connect('/community', array('controller' => 'resources'));
Router::connect('/community/:action/*', array('controller' => 'resources'));
二番目のルールはResourcesController
に一致する要求をマッピングし、また、アクションに渡して、魔法のほとんどを行います。 。逆です
echo $this->Html->link('View community', array(
'controller' => 'resources',
'action' => 'view',
$id
));
// outputs a link to `/community/view/171`
最初のルールは、ルートURLのうち、アクション名を維持するだけであり(つまりそうHtmlHelper
リンク:あなたはまた、逆ルーティングを活用することができます上記のアプローチで
ルートは/community/index
の代わりに/community
になります)。
あなたもSEOの目的のために古い/resources*
スタイルのリンクをリダイレクトするために探している場合は、次のようにトリックを行う必要があり、LazyOneさんのコメントフォローアップ:
# app/webroot/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/resources(.*)$ /community$1 [R=301,L] # permanent redirect
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
あなたは[CakePHPのルート]を使用して考えがあります(http://book.cakephp.org/view/945/Routes-Configuration#Defining-Routes-948)代わりに? – deizel
彼らは私が望んでいたことを、この点でやっていなかったので、私は.htaccessを使いました。しかし、ルートの提案があれば、私はすべての耳です。 – benhowdle89
1) 'RedirectMatch ^/resources(。*)$ ...'が間違っています。 'RewriteRule ^(。*)$ index.php?url = $ 1 [QSA、L]'行の上でこの規則を守っていたはずです – LazyOne