Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Redirect any GET request to a single php script

Tags:

php

.htaccess

After many hours messing with .htaccess I've arrived to the conclusion of sending any request to a single PHP script that would handle:

  • Generation of html (whatever the way, includes or dynamic)
  • 301 Redirections with a lot more flexibility in the logic (for a dumb .htaccess-eer)
  • 404 errors finally if the request makes no sense.

leaving in .htaccess the minimal functionality.

After some tests it seems quite feasible and from my point of view more preferable. So much that I wonder what's wrong or can go wrong with this approach?

  • Server performance?
  • In terms of SEO I don't see any issue as the procedure would be "transparent" to the bots.

The redirector.php would expect a query string consisting on the actual request. What would be the .htaccess code to send everything there?

like image 411
tru7 Avatar asked Oct 20 '22 12:10

tru7


1 Answers

I prefere to move all your php files in a other directory and put only 1 php file in your htdocs path, which handle all requests. Other files, which you want to pass without php, you can place in that folder too with this htaccess:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php/$0 [L]

Existing Files (JPGs,JS or what ever) are still reachable without PHP. Thats the most flexible way to realize it.

Example:

- /scripts/ # Your PHP Files
- /htdocs/index.php # HTTP reachable Path
- /htdocs/images/test.jpg # reachable without PHP
- /private_files/images/test.jpg # only reachable over a PHP script
like image 120
A. Blub Avatar answered Oct 24 '22 14:10

A. Blub