二通りやり方があって、一つは.htaccessでURLの#以降もCakePHPに制御させない方法と、javascriptで対応する方法。 今回はjavascript(jQuery)で対応してみました。
javascriptで実現する方法
遷移先のVIEWに下記を記述するだけです。
location.hashで#xxパラメーターを取得して、それを使ってname属性でフィルターしたオブジェクトのoffsetを取得します。 あとは、そこまでスクロースする処理を行えば疑似的に内部リンクが有効になります。.htaccessで実現する方法
.htaccessに下記を記述すると実現できるようです。(未検証)
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)(#*.*)$ index.php?url=$1$2 [QSA,L]