Web application was created as http 80, after few week they decided to switch it to https 443.
So they created AAM in CA, default zone for that WA is still http, internet zone is https.
In IIS for this WA someone already inserted https type in bindings.

At the moment, both paths are working, but users work on https. If anyone would insert httpin browser link would lead him/her to WA but as http.
I want to redirect if anyone would do try doing this in future, so if he enters http in browser, it would redirect him to https.

I tried deleting http binding of that WA from IIS. Didn't work well.
Next thing I tried is to put in Error pages additional item, here. Basically, here was added new error page of status code 403.4 with response action Respond with 302 redirect.
After this https worked but http reported 403 error.

This error (HTTP 403 Forbidden) means that Internet Explorer was able to connect to the website, but it does not have permission to view the webpage.

Print screen of AAM and IIS bindings

3 Answers 3


There are some online-tipps which recommend the use of the IIS Rewrite module. I do not prefer this way.

My preferred way is done with SharePoint AAMs and IIS-Bindings:

  • Alternate Access Mappings: Configure your HTTPS URL in Default-Zone. Add an additional "Internal URL" and map it to the "Default" Zone. Should look like this: AAM
  • Add both the HTTP and the HTTPS binding to your IIS-Website: IIS-Bindings

This configuration will redirect your users from HTTP to HTTPS even if they call a subsite of SharePoint.

  • At the moment, public url is http as your suggestion. If I change it to https will something happen? Like if I change default zone http to https my crawl stops so my reportings for audit logging. as it is known problem. Will I have similar problems with changing public url from http to https?
    – Danilo
    Commented Feb 27, 2017 at 10:29
  • Could you please attach an image of your AAM and your IIS-Bindings in your question. I do not have a full picture of your settings.
    – MHeld
    Commented Feb 28, 2017 at 7:01
  • As your Default-Zone is currently HTTP, you have to change some stuff if you change AAM as i recommend: Content-Source URLs in Search, SearchCenterURL in Search, MySiteHostLocation in UserProfileService. You should also check for static HTTP links on your site - it's always best to only have relative links. If you have other stuff like reporting, you should also change that. HTTP will no longer exist as a "usable AAM" in that configuration, it is only there to perform a redirect to HTTPS.
    – MHeld
    Commented Mar 3, 2017 at 7:23
  • This seemed like a much better way of doing things than using IIS Rewrite, but I noticed that, though if you type in a site mysitename.com you will be redirected successfully, if people have homepages or bookmarks saved with full paths to e.g. mysitename.com/SitePages/Home.aspx they were not getting redirected so I had to go with the IIS Rewrite option instead. I would have been interested to leave the farm for a couple of days to see if this worked itself out but didn't have time. Commented Nov 15, 2018 at 13:05
  • for me this did not work any idea?
    – mzonerz
    Commented Oct 27, 2020 at 5:04

This can be done via a simple IIS redirect with a dummy web site.

Keep only the https AAM and bindings at Central Admin and IIS to have the site with https url - this should be in a non default zone.

Also, keep the default zone as is with the lost host name and with http url. This is mandatory for the search to operate and crawl the content. it wont work on https urls.

now, Create a dummy IIS web site with the binding is mapped to http url of the DNS name. in the IIS redirect section, create a 302 redirection to the actual https sharepoint site url.

so when ever the request comes to http then it would redirect to https url and all the regular direct https url will still respond back normally.


We solved problem by calling js document from master page.
In script, code basically checks if the url is http: If not do nothing, if yes convert to https.
Here is similar solutions.

if (location.protocol != 'https:')
 location.href = 'https:' + window.location.href.substring(window.location.protocol.length);

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.