简体   繁体   中英

How can I force all URI requests to index.php?

In my index.php (which is in my project root directory) I have a basic routing system that grabs the url (using $_SERVER['REQUEST_URI] ) and calls the proper 'controller' which then calls the proper 'view' (so, implementation of very basic MVC). What I have in my index.php looks like this:

$router= Router::load('Routes.php');
$uri=trim($_SERVER['REQUEST_URI'],'/'); 
require $router->direct($uri);

Problem is, I can not seem to make all requests go to index.php . Obviously if you go to localhost/myproject/ you will get to index.php (therefore the proper controller will be called), however what I want is that even if you type localhost/myproject/contact to first be direct to index.php . So that index.php can handle routing for you.

If you are using apache you can use .htaccess file to redirect every request in your index.php file:

RewriteEngine On

RewriteRule ^/index\.php$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

If you are using nginx server you can redirect all request to index.php file with this code in your .conf file:

location / {
    try_files $uri $uri/ /index.php;
}

Hope this helps you

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM