Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP,是否可以在url前面使用记录id_Php_.htaccess_Cakephp_Routes_Url Redirection - Fatal编程技术网

CakePHP,是否可以在url前面使用记录id

CakePHP,是否可以在url前面使用记录id,php,.htaccess,cakephp,routes,url-redirection,Php,.htaccess,Cakephp,Routes,Url Redirection,我需要在url中为我的所有页面设置一个记录id。例如,如果用户不提供id,则站点应始终使用1000作为默认值,例如http://www.demosite.com/1000 如果用户导航到http://www.demosite.com/1001,我将在会话中设置记录1001详细信息,并将其显示在元素中。从这里开始,我需要所有的网址看起来像这样 http://www.demosite.com/1001/about-us http://www.demosite.com/1001/wizard/step

我需要在url中为我的所有页面设置一个记录id。例如,如果用户不提供id,则站点应始终使用1000作为默认值,例如http://www.demosite.com/1000

如果用户导航到http://www.demosite.com/1001,我将在会话中设置记录1001详细信息,并将其显示在元素中。从这里开始,我需要所有的网址看起来像这样

http://www.demosite.com/1001/about-us

http://www.demosite.com/1001/wizard/step1

http://www.demosite.com/1001/prices/view/1

我尝试了下面的路由,但我需要重定向,然后我在url中丢失了1001记录id

Router::connect('/:id', array('controller' => 'distributors', 'action' => 'session'), array('id' => '[0-9]+'));
Router::connect('/:id/**', array('controller' => 'distributors', 'action' => 'session'), array('id' => '[0-9]+'));

有人能帮我吗?

你把它弄得有点复杂,你只需要在controller中的方法中传递它,然后在那里定义1000个默认值和其他参数

function index($id=1000){

}
当您将新id传递给将覆盖新id的方法时

除此之外,您还可以使用htaccess处理其他url位置 像


重新启动发动机
重写规则^([0-9]{6})$scriptname.php?否=$1[L]

您可以从

获得帮助,您想要实现与本地化功能相同的caekphp??是的,但具有随机记录id。
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^([0-9]{6})$ scriptname.php?no=$1 [L]
</IfModule>