How to link to pages without the .html extension?

how to remove html extension from url without htaccess
remove html from url javascript
how to remove php extension from url using javascript
how to get url of html page
remove html extension from url web config
how to not show html in address bar
how to remove html from file extension
how to remove index.html from url

I would like to link to pages inside my website, e.g: Not: mywebsite.com/about.html But: mywebsite.com/about/

I've seen various websites doing this but it looks like they also react differently to things:

Apple.com: apple.com/iphone/ works, apple.com/iphone/index.html works, apple.com/iphone redirects.

Opera.com: opera.com/mobile/ redirects, opera.com/mobile works, opera.com/mobile.html does not work.

Mozilla.com: mozilla.org/en-US/ works, mozilla.org/en-US redirects, mozilla.org/en-US/index.html does not work.

Which leads to another question: Are there different methods for this?

Edit: It seems that Apple uses a folder for every page, e.g. a folder called 'iphone' with an index.html file inside it? But Opera and Mozilla use something in the .htaccess file?

Removing Extensions

To remove the .php extension from a PHP file for example yoursite.com/wallpaper.php to yoursite.com/wallpaper you have to add the following code inside the .htaccess file:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

If you want to remove the .html extension from a html file for example yoursite.com/wallpaper.html to yoursite.com/wallpaper you simply have to alter the last line from the code above to match the filename:

RewriteRule ^([^\.]+)$ $1.html [NC,L]

That’s it! You can now link pages inside the HTML document without needing to add the extension of the page. For example:

 <a href="http://whatever.com/wallpaper" title="wallpaper">wallpaper</a>

Link to pages without their extension .html .php htaccess tutorial , How to Remove the Page File Extension From the URL | Learn HTML & CSS | HTML Tutorial Duration: 16:29 Posted: Mar 29, 2018 The browser doesn't know that a .html page is a web page, some are .cgi, some are .php, some are .aspx. The browser requests it, then the server sends the correct MIME type back. – cjk Jul 6 '12 at 14:45

They are using .htaccess and URL rewriting. This is part of server configuration. You can not do it with html only.

This page explains basics of URL rewriting.

33: How to Remove the Page File Extension From the URL, On most servers, the server will find the page just fine without the extension. to . php in order to use PHP in your pages you won't have to update the links etc… That is what “.htaccess” do, RewriteRule exactly. What if your bad URI “website.com/about.html” can be written to “website.com/about”? It will be great

You folder then has to contain a file: index.*. Like: /iphone/index.html, which can be /iphone/ as well

Or work with .htaccess

Url's without the ".html" - HTML & CSS, I stumbled across tutorials on how to remove the .php extension from a PHP page . You can now link pages inside the HTML document without needing to add� [The Index Page] [How To Do It] [Creating A Directory] [The Big Hint] I've gotten lots of letters asking how I am able to post pages that do not require the .html extension. To some it may seem simple enough, but to those new to the HTML game, it isn't. So, here's the trick. My assumption is that you have a WWW site right now, correct?

In the .htaccess file in your sites root folder just add the following line:

# ---- Render pages without urls
Options +MultiViews

How to remove .php, .html, .htm extensions with .htaccess, You can now link any page inside the HTML document without needing to add the extension of the page as no extension will be visible now in� The reason I didn’t suggest just removing the extension is that some servers won’t set the right content-type in the header, even though most will serve the html page just fine. rickarooni

The most upvoted answer doesn't check whether the URL points to a directory, so you're going to get some mysterious 'not found' errors when it tries to append '.html' to a directory path. Easily fixed:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L]

The first condition will only pass if the path does not point to a valid directory. The second will only pass if the path points to a valid file when the .html extension is added. If both conditions pass, the rewrite rule simply adds ‘.html’ to the filename.

Notice that we can just match the entire path with .*. You can reject paths that contain a period character if you wish, but it's not really necessary since you've already checked that {REQUEST_FILENAME}.html is a valid file. In any case, it is unnecessary to escape a period character when it's inside a character class. I know you see this [^\.] everywhere, but the slash is redundant. [^.] is how to write it and look like a regex pro. 😎

This kind of redirect will be invisible to the user because, by default, mod_rewrite does the substitution internally, without informing the browser. If you wanted to do a permanent redirect, you would add the [R=301] flag at the end.

How to remove .html extension from URL of a static page , +)$ $1.html [NC,L] That's it! You can now link pages inside the HTML document without needing to add the extension of the page. For example: wallpaper� Looks like you got it working, perhaps without knowing. I went to your site and the pages loaded with the .html extension, but when I removed the .html, it loaded the same page. These rewrite rules don’t mean the page won’t stop loading under the old name, but it just makes the other name work as well.

How to link to pages without the .html extension?, rate that the answer should be more obvious, but I am wondering how to set up a site so that the links do not include the “.html” file extension. If your server "serves" the page as text/html, which it probably does, then the browser will not care about the extension. Also, when someone clicks on a link that doesn't have an extension, your server must recognize what to do with that. I don't use Apache but, in my server, one simple line makes everything without an extension go to a script. To see how to do this in your server, if it is Apache, go to the Apache board and ask there.

Link to pages on site without .html extension appearing in browser , I want to create a link to another page on my site, but I want the new page to display in the address bar without the ".html" extension. For example, I want a link �

How to set up site for links without "html" extension,

Comments
  • It's called URL rewriting... now this is your starting point, go and read :-)
  • Tried this it now says "Could not connect" any ideas why?
  • Is URL rewriting in the .htaccess file? And do they all use different .htaccess and/or URL rewriting things?
  • Yes. You can define alising rules in your .htaccess. There are many websites dealing on this. Look at @Marijke's good example.
  • What is better to use? Is one faster than the other or more stable?
  • depends on the purpose. If you want your site to be addressed via foo.com/folder/ you might want to use index.*, because it is much easier and less elaborate.