CodeIgniter Forums

Full Version: Routes matching regex help...
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

El Forum

I'm new to forum, so "hello everybody" Smile

I need some help with routing specific matches in the url. Regular expression aren't my greatest strength, so i'd really appreciate any help if you have some free time.

The problem is as follows:

I get "too curious" visitors who seem to think for some reason that my site is joomla based :gulp:
So i'm getting allot of 404's for joomla related manually typed urls.
I would like to be able to route them to a specific controller Wink

For the moment I've put every match so far as a seperate rewrite rule:

$route[‘administrator/index.php’] = “nojoomla”;
$route[‘joomla/administrator/index.php’] = “nojoomla”;
$route[‘joomla1.5/administrator/index.php’] = “nojoomla”;
$route[‘joomla15/administrator/index.php’] = “nojoomla”;
$route[‘joomla2/administrator/index.php’] = “nojoomla”;
$route[‘joomla1/administrator/index.php’] = “nojoomla”;
$route[‘Site/administrator/index.php’] = “nojoomla”;
$route[‘site_old/administrator/index.php’] = “nojoomla”;
$route[‘cms_old/administrator/index.php’] = “nojoomla”;
$route[‘joomla_old/administrator/index.php’] = “nojoomla”

... & ect, they're 30+ so far.

How exactly can I write a single rule that will match strings like "joomla, administrator, Site, joomla_old & ect" in the controller and method aswell ?

Thanks in advance!

El Forum

I think anyone (probably a lot of them aren't even real people but robots trying to hack your site) who tries to do this, is up to no good.
Just let them have the 404 and be done with them.

El Forum

Yah, probably, but still, i'd like to send them to a controller and have it do a record of the "visitor's" details.

El Forum

Well, it's up to you of course!
If you want to check for strings, you can use wildcards in your regexes/routes.

I don't know much aboot joomla, but I see that all your url's end in administrator/index.php.
So I would suggest this route:

$route['(.*)administrator/index\.php'] = “nojoomla”;

It will send any url ending with 'administrator/index.php' to your controller.

El Forum

Ahaaa, right.

So basicly if I wanted to match a string anywhere in the url, would this be correct ?:

$route[’(.*)administrator(.*)’] = “nojoomla”;

El Forum


El Forum

Wonderful :coolsmile:

Thanks very much for you help !