Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Hosting Requirements /

What you need to consider when choosing a hosting provider and plan.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

How to host in a joomla root domain?


Go to End


4 Posts   5538 Views

Avatar
Louie

Community Member, 9 Posts

8 May 2009 at 7:17pm

Hi guys,

I already searched the forums for this but I can't seem to find a solution. I have a joomla website up (it being the root domain) and I just want to create a subdomain from it of a website using silverstripe. But when I uploaded my files in the live server and tried to access it, it just gives me a 'page not found'. I tried to solve it but I get tons of errors along the way like Forbidden and Internal server errors.

My best guess is that its because silverstripe is reading the .htaccess file of the root domain (of joomla), not its own .htaccess. And I already tried to input those included in the sstripe .htaccess to the joomla .htaccess, but then again, still the same result. Do you guys have a solution from this?

Anyway, here's the joomla .htaccess contents

##
# @version $Id: htaccess.txt 5975 2006-12-11 01:26:33Z robs $
# @package Joomla
# @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##


#####################################################
#  READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
#
# Only use one of the two SEF sections that follow.  Lines that can be uncommented
# (and thus used) have only one #.  Lines with two #'s should not be uncommented
# In the section that you don't use, all lines should start with #
#
# For Standard SEF, use the standard SEF section.  You can comment out
# all of the RewriteCond lines and reduce your server's load if you
# don't have directories in your root named 'component' or 'content'
#
# If you are using a 3rd Party SEF or the Core SEF solution
# uncomment all of the lines in the '3rd Party or Core SEF' section
#
#####################################################

#####  SOLVING PROBLEMS WITH COMPONENT URL's that don't work #####
# SPECIAL NOTE FOR SMF USERS WHEN SMF IS INTEGRATED AND BRIDGED
# OR ANY SITUATION WHERE A COMPONENT's URL's AREN't WORKING
#
# In both the 'Standard SEF', and '3rd Party or Core SEF' sections the line:
# RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
# May need to be uncommented.  If you are running your Joomla!/Mambo from
# a subdirectory the name of the subdirectory will need to be inserted into this
# line.  For example, if your Joomla!/Mambo is in a subdirectory called '/test/',
# change this:
# RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
# to this:
# RewriteCond %{REQUEST_URI} ^(/test/component/option,com) [NC,OR] ##optional - see notes##
#
#####################################################


##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

#
#  mod_rewrite in use

RewriteEngine On


#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla!/MamboDirectory (just / for root)

# RewriteBase /


########## Begin - Joomla! core SEF Section
############# Use this section if using ONLY Joomla! core SEF
## ALL (RewriteCond) lines in this section are only required if you actually
## have directories named 'content' or 'component' on your server
## If you do not have directories with these names, comment them out.
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] 		##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
RewriteRule ^(content/|component/) index.php
#
########## End - Joomla! core SEF Section



########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 404_SEF, 404SEFx, SEF Advance, etc
#
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] 		##optional - see notes##
#RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule (.*) index.php
#
########## End - 3rd Party SEF Section



########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

Thanks,
Louie

Avatar
Fuzz10

Community Member, 791 Posts

15 July 2009 at 7:31pm

I don't know enough about Joomla , but running Silverstripe in a subdirectory should be no problem. As long as the websever ends up in the SS directory and parses the .htaccess file you should be all right...

Avatar
Martijn

Community Member, 271 Posts

16 July 2009 at 10:31am

I just made an install of silverstripe in a subfolder of a rootfolder where joomla is installed.

I have the same joomla htaccess and installed silverstripe normaly, without problems, so it should work by default.

It works here even with joomla seo enabled, but did you try to turn off joomla seo and remove the htacces? ( although it shouldn't really matter, just for isolating the problem)
You did a same install of Silverstripe as you would do it on your own pc?

Avatar
Gravitational FX

Community Member, 22 Posts

16 July 2009 at 11:26am

Edited: 16/07/2009 12:31pm

Most hosting systems will only allow a .htaccess in the root folder, so if you have SilverStripe in a subfolder with it's own .htaccess file, it likely won't be read (unless you are redirecting to a subdomain i.e. silverstripe.yourdomain.com)

Of course you need to check with your ISP as to what their rules on .htaccess files are but that's the norm.

So, you can pretty much forget the .htaccess files in any other folder but your root.

Try uncommenting out the "# RewriteBase /" line.
Also - sorry for sounding patronizing but make sure your joomla .htaccess file actually has the filename ".htaccess".

The Joomla install by default keeps the filename as "htaccess.txt" You need to rename it if you're using friendly URLs.

Best way to test the .htaccess file is to:
1. rename your existing root .htaccess to old.htaccess
2. rename your silverstripe subdirectory .htacces to old.htaccess
3. open your domain ina browser without the www e.g. http://yourdomain.com - without .htaccess it won't translate to www.
4. create a new .htaccess file and add the lines
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

5. refresh your browser with http://yourdomain.com and it should now translate to http://www.yourdomain.com

Want to test if your ISP is only using the root install? Simply move the htaccess from the root to your silverstripe sub folder and perform the same action in step 5.

If your browser still sits at the domain name without the www prefix then you know that onlt the root .htaccess is being read.

Delete your test .htaccess file and replace it with the standard Joomla htaccess.txt file renamed to .htaccess
At the end append the lines (make sure you replace <yoursubfolder>)
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* <yoursubfolder>/sapphire/main.php?url=%1&%{QUERY_STRING} [L]

The good thing about the .htaccess files are that you don't need a server restart. Just a couple of refreshes with the cache discarded - (hold down <shift> and click on refresh in firefox).

Hope this helps you track down the problem.

Wil.
---
Gravitational FX Web Design
www.gravitationalfx.com