How to make Drupal links relative - xampp

Recently began exploring Drupal (and web development as a whole). After setting up Drupal on my local apache server (xampp), I've noticed that the links all refer to the root of the webserver, instead of relative to Drupal's directory (Drupal is located in a sub dir of my webserver).
I've tried searching google, but don't know exactly what to search for.
How to change this behaviour?

You have to set up your sites correctly in your hosts file.
There are plenty of tutorials on this.
Currently your hosts file probably redirects to your webserver, you have to set up each site you create to redirect to your drupal webroot.

Related

How to host Laravel project on Raspberry Pi

I have scoured the depths of the internet for this solution and I come up empty handed. I have installed apache server on my pi and when I access the IP address from another computer, it pulls up the correct index.html page. So the server is working fine. My problem is that I can't get my Laravel app to work. When I deploy my laravel apps to other hosting sites, I put everything except the "public" folder into a separate folder in the file tree, and edit the index.php file in the public folder to match the new file structure of pointing to the autoload.php and bootstrap files. None of that is working for me in the apache server on the Pi. Can someone tell me how to do this or where there is legitimate documentation on how to do it. Please don't point me to any google articles that come up in the first 3 pages because i've read and tried them all.
The only thing that happens right now is that when i go to "IPaddress/project_folder" in the URL, it just brings up the file tree in the browser as opposed to pointing to my "/" route within the laravel project.

xampp - no longer loads local website but always redirects to internet version of site

I have a website that is live and a version that I am working on locally using XAMPP. For some reason every time I try to load:
http://localhost/websitename
or
http://127.0.0.1/websitename
it goes to the internet version. This has only started happening. All services are started. XAMPP is working for all other sites that I am working on locally.
Check your site settings as I believe you're having the url in your website set to the live version.
This can have alot of reasons.
What does your windows host file have for redirect rules (C:/Windows/system32/drivers/etc/host) I assume that you use Windows because you said "xampp", correct me if im wrong)
Check for header(); redirects within your websites php scripts.
Do you have a v-host entry redirecting you to another url in your v-host config of your apache?
Check if you have any hard-coded url's? or redirects? in the project that are redirecting to the live version.

Moved Joomla 1.7 Site to New Server. Admin works fine. No pages display

I've just moved a Joomla 1.7 site to a new server.
Administration back-end works fine. Configuration.php seems fine. Get "The requested document was not found on this server." for every page other than Home.
Must be talking to the database OK or I'd get an error. Could this be a problem with the PHP?
Thanks,
Andy
Did you clear joomla cache ?
Disable page and/or module caching.
Disable any plugin that optimizes "loading speed".
Try removing SEF URLs (Joomla! and any 3rd party extension).
If you are using a custom .htacess, then use an unmodified joomla one.
Disable some system plugins.
Disable modules in the homepage.
Have you tried using another template (site) ?
You have Seach Engine Friendly URLs enabled in /administrator/ area's global configuration settings. You have probably enabled the option to use the mod_rewrite function which removes the /index.php/ portion of the urls.
It is a requirement of this mode that you have the .htaccess file in place in the root of your site. You probably had this correctly configured on your development server but perhaps forgot to move the file across when you went live. Some FTP programs hide dot files (files starting with a leading dot in the filename) so depending upon how you transferred the files (I'm guessing manually with FTP rather than Akeeba backup or similar) the file may have been missed. Look through your FTP client's options/preferences for an option to show/hide hidden files.
Failing this - the file could be correctly in place - but if you were developing in a sub-folder on your development server you would have set the RewriteBase line to your /sub-folder/
RewriteBase /sub-folder/
Now you've moved to the live server this line could be incorrect. If this is the case, edit the file to Read
RewriteBase /
Chances are it is one or other of these issues - missing .htaccess file or incorrect RewriteBase. A third and nowadays somewhat more unlikely option is that your server doesn't have mod_rewrite enabled - but I think that would result in server 500 errors.
Check whether you are using any modules that is calling database and you have not changed DB details in that module after migration. If admin panel is working fine then I think problem with some modules that are used in front-end. You can do debugging by disabling few suspected modules and check whether your site works fine or not. Else provide some more information about your site so that I can check further.

CodeIgniter How to create Multiple Site with One CMS

I want to create a blog site with only one CMS. This CMS will be in different domain.
For example: mycms.com
Then my blog sites are also in different domains.
For example: website1.com, website2.com, website3.com
They will all use mycms.com as their admin
*Images will be uploaded in mycms.com/images/ so all the 3 websites will get the images from this directory
If images are loaded on website1.com from the main database, they should be displayed as if they're from website1.com. So for example website1.com/images/cat.jpg instead of mycms.com/images/cat.jpg
How will I build this using codeigniter?
You can use the same CodeIgniter /System and /Application folders for all the websites if you like; just make sure all the index.php files are setup to use those same folders for $system_path and $application_folder respectively. Note that these sites also need to reside on the same server.
You can serve up different content by checking $_SERVER['HTTP_HOST'] for the domain the request came from.
As for htaccess you should be able to use %{HTTP_HOST}/$1 or %{HTTP_HOST}$1 (depending on server config) to make the rewrite rule dynamic.
I am actually building a similar project right now using CodeIgniter but there are also several other projects available like halogy, codefight, pyro (with an extension), and many others.
CodeIgniter has a System and an Application folder. You could have one global system folder and then one application folder for each of your subdomains, or you could have one application folder and just make your subdomian folders parallel with your www folder.

Pushing/Migrating your local Drupal site to a live-site

I have installed drupal on my localmachine(ubuntu, Xampp), at localhost.
Path and Pathauto modules are active (a module to produce friendly URLs).
Migrating/Pushing my local install to the www.mysite.com
Exported SQL from phpMyadmin(localhost).
Made a new DB at live site (I think a different name from the localhost-DB does not create any problem).
Imported SQL into phpMyadmin, (mysite).
Changed the username-password-DBname in the sites/default/settings.php in drupal folder.
Now, uploaded the drupal folder and all its content into the /www of the "mysite.com".
Visited the URL www.mysite.com, site looks same as on my localhost, good.
But --
I made a tryPage on my
localhost/drupal, for which
pathauto(cleanURL) recommended the
URL "content/trypage" which i
explicitly changed to "trypage", so
that absolute link to the page is
"localhost/drupal/trypage" and not
"localhost/drupal/content/trypage".
Now When i click the trypage link on the mysite,
it open's it in-reference to my
localhost, my local-pages are
opened. That is, when I click
newpage on the mysite.com, the URL
requested is
"localhost/drupal/newpage" and not
"www.mysite.com/newpage".
Do you think it is coz of the SEO
friendly URL generation issue, the
Pathauto module.
Anyways how do i solve this
If I make my "localhost/drupal" to open from same URL (mysite.com), i dont know how
to do that exactly, i think by configuring
vhosts. But if i do that, then the URL
www.mysite.com where will it take
me, local or online.
Now If i add new modules, new content, new pages, and new books on my localhost site, and wish to update mysite.com, do i have to redo SQL export/import everytime, and use a software like rsync/sitecopy(), to upload the folders on the live site. How do i solve this.
This is an old question, but here are some thoughts.
Links generated by Drupal (e.g. menu links, links within the admin area, breadcrumbs, etc.) should always use the domain of the currently requested site. URLs within Drupal are handled by the "router", which stores all paths within the database in a relative format.
That said, unless you're specifying the site URL in settings.php (the $base_url variable) or are linking to pages using fully qualified URLs, this shouldn't be a problem. Linking to different nodes from other nodes can be handled with a variety of modules. Pathologic is a good choice, or Path Filter.
Moving Drupal sites from development to staging to production is still a common problem for which there is no definitive solution. This question was asked previously here.

Resources