php - URL Routing using RewriteRule -


i trying create own php mvc framework learning purpose. have following directory structure:

localhost/mvc:

.htaccess index.php application controller model view config/     routes.php error/     error.php 

inside application/config/routes.php have following code:

$route['default_controller'] = "mycontroller"; 

now trying achieve when user visits root directory using browser want value of $route['default_controller'] route.php file , load php class inside folder controller matches value .

and if user tries visit application using url this: localhost/mvc/cars, want search class name cars inside controller folder , load it. in case there no class called cars want take user error/error.php

i guess achieve above targets have work .htaccess file in root directory. please tell me code there? if there other way achieve please suggest me.

i have tried use .htaccess codes here, not working me

it sounds , buzzword standpoint, me little confusing because see php's model mvc model already. it's providing api program , deliver content web server apache , database (something mysql). translates code(model) html(view) ... provided that's intend, , you're supplying code user input (control). getting wrapped in terminologies gets little distracting , can lead chaos when bring in collaborate isn't familiar conventions. (this should never used in production environment paying gig.)

i can tell on page referenced guy's .htaccess file needs little work. [l] flag tells mod_rewrite last command process when rule returns true. either need this:

<ifmodule mod_rewrite.c>     rewriteengine on     rewriterule    ^(.*)$    public/$1    [l]  </ifmodule> 

or following... using passthru flag means implying there other things processed prior last rule (eg. might rewrite_base or alias), that's not case .htaccess file since it's little bare. code work similar code above not same. can't used though, , there no need to:

<ifmodule mod_rewrite.c>     rewriteengine on     rewritecond %{request_filename} !-f     rewritecond %{request_filename} !-d     rewriterule ^(.*) index.php?url=$1  </ifmodule> 

the difference in way it's processed. on first .htaccess example you're passing file index.php regardless of whether exists or not. can [accidentally] rewrite path has real file real file never accessed using method. example might have file called site.css can't accessed because it's being redirected index.php.

on second ruleset he's @ least checking see if server doesn't have file or directory name being requested, they're forwarding index.php $_get variable (which seems little pointless).

the way typically write these (since know mod_rewrite loaded in config) to this:

rewriteengine on rewritecond %{http_host} ^mydomain.com rewriterule (.*) http://www.mydomain.com/$1 [r=301,l] rewritecond %{script_filename} !-f rewritecond %{script_filename} !-d rewriterule .* index.php 

in php code pull $_server['request_uri'] , match against list of uris database. if there's match know it's real page (or @ least record existed @ point in time). if there's not match, explode request_uri , force through database using fulltext search see potentially might match on site.

note: if blindly trust request_uri , query database directly without cleaning run risk of sql injection. not want pwnd.

<?php   $intended_path = $_server['request_uri'];    if(in_array($intended_path,$uris_from_database)){     //show page.   } else {     $search_phrase = preg_replace('!/!',' ',$intended_path);     $search_phrase = mysqli_real_escape_string($search_phrase);     $sql = "select * pages match (title,content) against ('$search_phrase');"   }     

sorry if sounds bit pedantic, i've had experience managing couple of million dollar (scratch) website builds have had hurdles people not sticking standard convention (or @ least agreed upon team consensus).


Comments

Popular posts from this blog

c++ - Function signature as a function template parameter -

How to call a javascript function after the page loads with a chrome extension? -

algorithm - What are some ways to combine a number of (potentially incompatible) sorted sub-sets of a total set into a (partial) ordering of the total set? -