I'm working on a PHP project. I want to route all URLs except some (/, /index.php, /video-archive.php etc.) to a PHP file which is /article.php
Let me describe it in more detail:
Consider that I have article.php at URL https://example.com/article.php
, when a client wants to reach to URL https://example.com/how-to-grow-beautiful-flowers.php
or without the .php
extension, I want this request to be processed by this https://example.com/article.php
URL or simply article.php
file. If user wants to reach https://example.com/
or https://example.com/index.php
or https://example.com/video-archive.php
they will reach to index.php
and video-archive.php
. So there will be exceptions to that route.
REQUEST URL PROCESSING URL
https://example.com/ https://example.com/index.php
https://example.com/index.php https://example.com/index.php
https://example.com/index https://example.com/index.php
https://example.com/video-archive https://example.com/video-archive.php
https://example.com/video-archive.php https://example.com/video-archive.php
https://example.com/how-to-grow-flowers https://example.com/article.php
https://example.com/types-of-flowers https://example.com/article.php
https://example.com/about-us https://example.com/article.php
NOTE: I'm currently developing this project using XAMPP on my computer (localhost). But I'm planning to deploy it on a server in future. So it should be better to consider this information.
CodePudding user response:
You can redirect all requests to /article.php
expect requests to files that actually exist. Example requests to /index.php
, /video-archive.php
and static files will load the actual file. Try this
Put this in a .htaccess
in the root directory
RewriteEngine On
# redirect all request to article.php except existing files
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ article.php [QSA,L]
You can then get the URI in the article.php
file like so
$article_url = rtrim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '.php');
// when a client hits https://example.com/how-to-grow-beautiful-flowers.php
// $article_url equals '/how-to-grow-beautiful-flowers'