I'm habituated to use relative paths, but my root points to the root of server and not my sub-directory. This forced me to use absolute paths at every point.
I searched for the solution and end up with two results:
.htaccess ot VirtualhostI never tried to understand .htaccess and I don't have access to set Virtualhost. This forced me to try bit harder and here is the outcome.
I've created a file named rootpath.php on root directory of my website.
(Note: this is not root '/' of the web server, but my sub-directory)
Its contents are as follows:
<?phpNow, I include this file on top of every file.
$relative_path = "/subdirectory";
$server_url = $_SERVER["SERVER_NAME"];
$root = "http://" . $server_url. $relative_path;
Eg: <?php require('rootpath.php'); ?>and append all paths with <?php print $root; ?>
Eg: <a href="<?php print $root; ?>/index.php">Note: Initially I used './' and '../' notation, but it won't work always. Consider the following case, which I faced:
/index.phpI defined a common header for all the pages and stored it in header.php, which in-turn imports all the necessary scripts from scripts.php.
Now, if you import header.php from contact/contact.php, it work work properly because scripts.php is loaded relatively in header.php and now the control searches it in contact directory.