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! Quote 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. Quote 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! Quote 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 Quote 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. Quote 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. Quote 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. Quote Link to comment https://forums.phpfreaks.com/topic/257652-https-rewrite/#findComment-1320694 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.