radox Posted February 23, 2012 Share Posted February 23, 2012 Hello! I have a rewrite rule that's working great, I just need to direct it to SSL and tried a bunch of combinations with no luck Here's what I have so far for the .htaccess file sitting in the /profile/ folder: RewriteEngine on RewriteCond %{REQUEST_URI} !profile\.php RewriteCond %{REQUEST_URI} /([^/]+)/([^/]+)/([^/]+) RewriteRule !\.(gif|jpg|png|css)$ profile.php?shopid=%2&shop=%3 http://www.domain.com/profile/123/shop-name should redirect to https://www.domain.com/profile/123/shop-name I'm sure this is a quick one for someone..thanks! Link to comment https://forums.phpfreaks.com/topic/257652-https-rewrite/ Share on other sites More sharing options...
requinix Posted February 24, 2012 Share Posted February 24, 2012 Add a RewriteCond %{HTTPS} off and change the destination of the RewriteRule so that it goes to the HTTPS location. Link to comment https://forums.phpfreaks.com/topic/257652-https-rewrite/#findComment-1320606 Share on other sites More sharing options...
radox Posted February 24, 2012 Author Share Posted February 24, 2012 Works, but keeps the URL in its original NON rewrite form. Need https and pretty URL. Please advise. Thanks! Link to comment https://forums.phpfreaks.com/topic/257652-https-rewrite/#findComment-1320613 Share on other sites More sharing options...
requinix Posted February 24, 2012 Share Posted February 24, 2012 Huh. Right. It would. Derp. Two rules. RewriteEngine on # generic HTTPSify rules, but only gets applied to the profile stuff RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !profile\.php RewriteCond %{REQUEST_URI} /([^/]+)/([^/]+)/([^/]+) RewriteRule !\.(gif|jpg|png|css)$ https://%{HTTP_HOST}%{REQUEST_URI} [L] # URL rewriting RewriteCond %{REQUEST_URI} !profile\.php RewriteCond %{REQUEST_URI} /([^/]+)/([^/]+)/([^/]+) RewriteRule !\.(gif|jpg|png|css)$ profile.php?shopid=%2&shop=%3 Link to comment https://forums.phpfreaks.com/topic/257652-https-rewrite/#findComment-1320640 Share on other sites More sharing options...
radox Posted February 24, 2012 Author Share Posted February 24, 2012 Presto! I thought the [L] indicates last, but this rule only works with it? Thank you. Link to comment https://forums.phpfreaks.com/topic/257652-https-rewrite/#findComment-1320657 Share on other sites More sharing options...
requinix Posted February 24, 2012 Share Posted February 24, 2012 It does mean "last", as in "this is the last rule for this cycle, don't process any more". Thus mod_rewrite will do the redirect, the rule won't match the next time around, and the silent URL rewriting proceeds as normal. Link to comment https://forums.phpfreaks.com/topic/257652-https-rewrite/#findComment-1320662 Share on other sites More sharing options...
radox Posted February 24, 2012 Author Share Posted February 24, 2012 perfect explanation. word. Link to comment https://forums.phpfreaks.com/topic/257652-https-rewrite/#findComment-1320694 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.