Recently I faced a problem with hosting a website on a server to which I have limited access. I was provided with permission only to a sub-directory on the server.
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:
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:
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.
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.
/header.php
/footer.php
/scripts.php
/contact
--contact/contact.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.
good
ReplyDelete