Pretty urls not working with https

The place to talk about things that are related to CMS Made simple, but don't fit anywhere else.
Post Reply
5k313t0r
New Member
New Member
Posts: 8
Joined: Wed Jun 12, 2013 7:07 pm

Pretty urls not working with https

Post by 5k313t0r »

Hey everybody,

I am having an issue with one of my sites using https and pretty urls. The site works with the below .htaccess file as I expect. It forces a connection to https to ensure a secure connection and prevent connections from http.

Code: Select all

# 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
# php_value session.cookie_httponly true

# Options +FollowSymLinks

# To prevent E_STRICT problems with PHP 5.3+ you can uncomment the following lines
# Note: These settings should only be enabled for production sites!
# php_flag display_startup_errors 0
# php_flag display_errors 0
# php_flag html_errors 0
# php_value docref_root 0
# php_value docref_ext 0

<IfModule mod_rewrite.c>
RewriteEngine on
#
# Sub-dir e.g: /cmsms
RewriteBase /

# Forces https on url
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# 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]

</IfModule>

<IfModule mod_headers.c>
# Disable ETags
Header unset ETag
FileEtag None
# For Security
Header set X-Frame-Options "SAMEORIGIN"

# Sets secure header so can't connect through http initially
Header set Strict-Transport-Security "max-age=16070400; includeSubDomains"

</IfModule>

<IfModule mod_deflate.c>
# Compress css, plaintext, xml, gif, and images in transport.
AddOutputFilterByType DEFLATE text/css text/plain text/xml image/gif image/jpeg image/png
</IfModule>

<IfModule mod_expires.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
# Set expires tags on various files... so that the browser wont attempt to reload them.
ExpiresActive On
ExpiresDefault "access plus 1 year"
<IfModule mod_headers.c>
  # Setting cache control to public allows proxy servers to cache the items too.
  Header set Cache-Control "public"
</IfModule>
</FilesMatch>
</IfModule>

When I turn on pretty urls by uncommenting the following lines:

Code: Select all

# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.+)$ index.php?page=$1 [QSA]
and adding this following line to config.php:

Code: Select all

$config['url_rewriting'] = 'mod_rewrite';
I can access the homepage but no sub/child pages. I get a 404 not found. The url seems to be correct (eg. ;https://sub.domain.com/home/privacy-policy ) and I have cleared both my browser and the CMS cache. I am not sure what the issue might be.

Does anyone have some insight to help display the child pages? Any help is appreciated. Thanks!
Last edited by Dr.CSS on Tue Apr 01, 2014 6:05 pm, edited 1 time in total.
Reason: Please use double quotes or something on fake links so they aren't clickable...
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Pretty urls not working with https

Post by velden »

Don't know yet what the problem is, but you say it's caused by protocol (https). But did you test pretty urls without the https redirection?
5k313t0r
New Member
New Member
Posts: 8
Joined: Wed Jun 12, 2013 7:07 pm

Re: Pretty urls not working with https

Post by 5k313t0r »

Velden,
Sorry I forgot to mention that in my post. Yes, I had pretty urls working prior to adding the https redirect. I can get both pretty urls and the https redirect working independently of each other but as soon as I try to do both, that's when I get the 404 errors. I am wondering if it isn't just a small thing that I am not seeing. Or a setting in the CMS I am missing ( I have tried the "Use HTTPS for this page:" checkbox on individual pages as well ). I am admittedly a bit n00bish to the server side of things.
User avatar
Dr.CSS
Moderator
Moderator
Posts: 12711
Joined: Thu Mar 09, 2006 5:32 am

Re: Pretty urls not working with https

Post by Dr.CSS »

From the fake link you posted it looks like the site is in a subfolder of the site, site.com/subfolder which you are using as a subdomain if so you may need to use the RewriteBase /subfolder setting in the htaccess, I have to use it when doing subdomains with pretty URLs, look at the Album link below...
Post Reply

Return to “The Lounge”