When I´m in a secure part of a web-site I´m developing (entering a specific page or folder using https), the relative links to the normal pages are automatically converted to https as well.
Is there a way to tell an <a> tag to always use the http protocol instead of the https protocol (or the other way around)?
I know it´s easy using the complete link (http://www.mysite.com/index.html or https://www.mysite.com/index.html), but I would like it to work with relative links (index.html, ../index.html, etc.).
There is no way to do this with relative hyperlinks as your are using a different protocol, it would be no different than linking to a ftp location.
We use Apache mod_rewrite to control whether a page is served via http or https. Here's an example snippet from a site's root directory .htaccess file:
Read all about it at:
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
It sounds like you want to use the BASE element.
There is no way to 'tell' an Anchor to use a specific protocol or not, at least without using the BASE element in the HEAD of that page.
Is there a reason why you want to use relative links over absolute links? This article talks about the pitfall of using relative links with HTTPS - the potential to have your site double indexed and such.
Not sure if this is exactly what you were looking for, but if you're using Apache, there's a trick you can use to do this: http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#relative
Basically you put the following in your Apache configuration file:
then append
:SSL
to any link (in the webpage) for which you want to force HTTPS, and:NOSSL
to any link for which you want to force regular HTTP.You can make all your internal links be protocol independent by using the following syntax:
<a href="//some/file/on/your/domain.php">link text</a>
instead of
<a href="some/file/on/your/domain.php">link text</a>
the
//
will make the link respect whatever protocol the page was loaded over.