Page 1 of 1

[SOLVED] 403 Forbidden error when using Mod_rewrite

Posted: Fri Aug 13, 2010 10:01 am
by luminous
I've deleted my previous topic as I have solved the interal server 500 error.  There is a better description of how to solve this in another thread on the forum that I have posted in.

Now that everything is "working", any attempt to use mod_rewrite is causing a 403 error.  The page references that are being created look exactly as they should be, only its not working.  I've copied my config from another website that I have working correctly, and am at a total loss as to why this is not working :(  (I have changed the paths to the best of my knowledge and all look fine)

What things are there on a default CMSMS install that you need to get this to work?  Are the only possible areas you need to change the config.php and .htaccess files?

.htaccess
SetEnv PHP_VER 5

SetEnv REGISTER_GLOBALS 0



# Attempt to override some php settings, these settings may be helpful on some hosts if your

# default configuration does not meet CMS's minimum requirements, and your host

# has given your account appropriate permissions

#php_value upload_max_filesize "10M"

#php_value session_save_path "tmp/cache"



#php_flag magic_quotes_gpc Off

#php_flag register_globals Off

#php_flag session.use_trans_sid Off



# (this is important, so uncomment if your host permit)

#Options -Indexes

#ServerSignature Off

#

Options +FollowSymLinks

#



RewriteEngine on

#

#Sub-dir e.g: /cmsms

RewriteBase /



#

# 301 Redirect all requests that don't contain a dot or trailing slash to

# include a trailing slash

# but ignore POST requests.

#RewriteCond %{REQUEST_URI} !/$

#RewriteCond %{REQUEST_URI} !\.

#RewriteCond %{REQUEST_METHOD} !POST$

#RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]



# Rewrites urls in the form of /parent/child/

# but only rewrites if the requested URL is not a file or directory

#

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ index.php?page=$1 [QSA]


config.php
Global Settings in the admin panel)
#after making any changes to path or url related options


#-----------------
#Behaviour Settings
#-----------------


# These settings will effect the overall behaviour of the CMS application, please
# use extreme caution when editing these.  Additionally, some settings may have
# no effect on servers with significantly restricted configurability.


#Display abbrieviated performance info in html source output
$config['show_performance_info'] = false;



# Warning: This option is deprecated and will be removed in later versions oF CMSMS.
# If you are experiencing problems with php memory limit errors, then you may
# want to try enabling and/or adjusting this setting.
# Note: Your server may not allow the application to override memory limits.
$config['php_memory_limit'] = '';


# In versions of CMS Made Simple prior to version 1.4, the page template was processed
# in it's entirety.  This behaviour was later changed to process the head portion of the
# page template after the body.  If you are working with a highly configured site that
# relies significantly on the old order of smarty processing, you may want to try
# setting this parameter to false.


$config['process_whole_template'] = false;


# CMSMS Debug Mode?  Turn it on to get a better error when you
# see {nocache} errors, or to allow seeing php notices, warnings, and errors in the html output.
# This setting will also disable browser css caching.


$config['debug'] = false;


# Output compression?
# Turn this on to allow CMS to do output compression
# this is not needed for apache servers that have mod_deflate enabled
# and possibly other servers.  But may provide significant performance
# increases on some sites.  Use caution when using this as there have
# been reports of incompatibilities with some browsers.


$config['output_compression'] = false;


#-----------------
#Database Settings
#-----------------


#This is your database connection information.  Name of the server,
#username, password and a database with proper permissions should
#all be setup before CMS Made Simple is installed.
$config['dbms'] = 'mysql';
$config['db_hostname'] = 'xxxx';
$config['db_username'] = 'xxxx';
$config['db_password'] = 'xxxx';
$config['db_name'] = 'xxxx';

#Change this param only if you know what you are doing
$config["db_port"] = '';



#If app needs to coexist with other tables in the same db,
#put a prefix here.  e.g. "cms_"
$config['db_prefix'] = 'cms_';


#Use persistent connections?  They're generally faster, but not all hosts
#allow them.
$config['persistent_db_conn'] = false;


#Use ADODB Lite?  This should be true in almost all cases.  Note, slight
#tweaks might have to be made to date handling in a "regular" adodb
#install before it can be used.
$config['use_adodb_lite'] = true;


#-------------
#Path Settings
#-------------


#Document root as seen from the webserver.  No slash at the end
#If page is requested with https use https as root url
#e.g. http://blah.com
$config['root_url'] = 'http://www.abytecomputers.co.uk';


#SSL URL.  This is used for pages that are marked as secure.
$config['ssl_url'] = 'https://www.abytecomputers.co.uk';


#Path to document root. This should be the directory this file is in.
#e.g. /var/www/localhost
$config['root_path'] = '/homez.361/abytecom/www';


#Name of the admin directory
$config['admin_dir'] = 'admin';


#Where do previews get stored temporarily?  It defaults to tmp/cache.
$config['previews_path'] = '/homez.361/abytecom/www/tmp/cache';


#Where are uploaded files put?  This defaults to uploads.
$config['uploads_path'] = '/homez.361/abytecom/www/uploads';


#Where is the url to this uploads directory?
$config['uploads_url'] = $config['root_url'] . '/uploads';



#---------------
#Upload Settings
#---------------


#Maxium upload size (in bytes)?
$config['max_upload_size'] = 128000000;


#Permissions for uploaded files.  This only really needs changing if your
#host has a weird permissions scheme.
$config['default_upload_permission'] = '664';


#------------------
#Usability Settings
#------------------


#Allow smarty {php} tags?  These could be dangerous if you don't trust your users.
$config['use_smarty_php_tags'] = false;
#Automatically assign alias based on page title?
$config['auto_alias_content'] = true;


#------------
#URL Settings
#------------


#What type of URL rewriting should we be using for pretty URLs?  Valid options are:
#'none', 'internal', and 'mod_rewrite'.  'internal' will not work with IIS some CGI
#configurations. 'mod_rewrite' requires proper apache configuration, a valid
#.htaccess file and most likely {metadata} in your page templates.  For more
#information, see:
#http://wiki.cmsmadesimple.org/index.php ... ty_URL.27s
$config['url_rewriting'] = 'mod_rewrite';


#Extension to use if you're using mod_rewrite for pretty URLs.
$config['page_extension'] = '.html';


#If you're using the internal pretty url mechanism or mod_rewrite, would you like to
#show urls in their hierarchy?  (ex. http://www.mysite.com/parent/parent/childpage)
$config['use_hierarchy'] = true;


#If using none of the above options, what should we be using for the query string
#variable?  (ex. http://www.mysite.com/index.php?page=somecontent)
$config['query_var'] = 'page';


#--------------
#Image Settings
#--------------


#Which program should be used for handling thumbnails in the image manager.
#See http://wiki.cmsmadesimple.org/index.php ... ge_Manager for more
#info on what this all means
$config['image_manipulation_prog'] = 'GD';
$config['image_transform_lib_path'] = 'C:/Program Files/VisualMagick/bin/';


#Default path and URL for uploaded images in the image manager
$config['image_uploads_path'] = '/homez.361/abytecom/www/uploads/images';
$config['image_uploads_url'] = $config['root_url'] . '/uploads/images';

#SSL URL.  This is used for pages that are marked as secure.
$config['ssl_uploads_url'] = '/uploads';


#------------------------
#Locale/Encoding Settings
#------------------------


#Locale to use for various default date handling functions, etc.  Leaving
#this blank will use the server's default.  This might not be good if the
#site is hosted in a different country than it's intended audience.
$config['locale'] = '';


#In almost all cases, default_encoding should be empty (which defaults to utf-8)
#and admin_encoding should be utf-8.  If you'd like this to be different, change
#both.  Keep in mind, however, that the admin interface translations are all in
#utf-8, and will be converted on the fly to match the admin_encoding.  This
#could seriously slow down the admin interfaces for users.
$config['default_encoding'] = 'utf-8';
$config['admin_encoding'] = 'utf-8';


#This is a mysql specific option that is generally defaulted to true.  Only
#disable this for backwards compatibility or the use of non utf-8 databases.
$config['set_names'] = true;


# URL of the Admin Panel section of the User Handbook
# Set none if you want hide the link from Error
$config['wiki_url'] = 'http://wiki.cmsmadesimple.org/index.php ... dmin_Panel';

?>

Re: 403 Forbidden error when using Mod_rewrite

Posted: Fri Aug 13, 2010 12:13 pm
by owr_bgld
In my case it worked after putting "[NC]" at the lines with rewriting.

Code: Select all

RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

Re: 403 Forbidden error when using Mod_rewrite

Posted: Fri Aug 13, 2010 2:34 pm
by replytomk3
Be careful of all statements above the "" line, as placing some statements on some servers can bring sites down. Try temporarily deleting all above statements BUT the PHP 5 statement.

Re: 403 Forbidden error when using Mod_rewrite

Posted: Fri Aug 13, 2010 2:46 pm
by luminous
Thank you all for your help.

Turns out that I was chasing my own tail.  For some unknown reason some of the permissions on the site had been altered incorrectly causing it to fail.

During fault testing I had done a chmod 777 on everything thinking that if it was anything to do with permissions this would have solved it...I was wrong.  Permissions have to be 705 :(

Normally I would never do chmod 777, but on a totally blank site I thought I would use that just to remove the possibility of this being the cause...oops, what a mistake to make...