问题
I am using Cake, but how do I make the routing like:
Router::connect('/', array('controller' => 'homes', 'action' => 'index'));
case insensitve?
For instance:
Router::connect
(
'/:user',
array('controller' => 'teachers', 'action' => 'contentProfile', 1),
array('user' => 'hellouser')
);
MY_URL.com/hellouser works fine but not MY_URL.com/HelloUser does NOT route correctly.
And I have tried /heelouser/i and still nothing.
回答1:
As indicated in the docs, you can use regular expressions to restrict matching route elements. The regex snippet you are looking for is:
'(?i:hellouser)'
Route definition
Putting the docs and your specific regex together, here's a route that will match the url /hellouser
in a case insensitive manner:
Router::connect(
'/:user',
array('controller' => 'teachers', 'action' => 'contentProfile', 1),
array('user' => '(?i:hellouser)')
);
The third argument is used to restrict the possible values of route elements - in this case to "hellouser" in a case insensitive manner.
来源:https://stackoverflow.com/questions/12526099/cakephp-routing-in-php-too