« Custom PHP.ini with FastCGI on DreamHostControl htaccess Basic Authentication with PHP and mod_rewrite »
Rewrite underscores to hyphens for SEO URL
This Apache .htaccess code 301 redirects requests for URLs with underscores (_) to the URL with hyphens.
According to Matt Cutts the choice is clearly to use dashes or hyphens instead of underscores.
So instead of article_this_is_awesome_page.html you want article-this-is-awesome-page.html.
I often get asked whether I’d recommend dashes or underscores for words in urls. For urls in Google, I would recommend using dashes.
When http://d.com/the_top_apache_htaccess_article.html is requested by a browser or search engine, a Search-Engine Friendly 301 Redirect is sent telling the client that the correct location for the resource is at http://d.com/the-top-apache-htaccess-article.html
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule !\.(html|php)$ - [S=6]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5-$6-$7 [E=underscores:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5-$6 [E=underscores:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=underscores:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=underscores:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=underscores:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=underscores:Yes]
RewriteCond %{ENV:underscores} ^Yes$
RewriteRule (.*) http://www.askapache.com/$1 [R=301,L]
« Custom PHP.ini with FastCGI on DreamHost
Control htaccess Basic Authentication with PHP and mod_rewrite »
The love of liberty is the love of others; the love of power is the love of ourselves.
-- William Hazlitt
The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect. Tim Berners-Lee
The article’s example code has S=5 option (skip next five rules) followed by six underscore-elimination rules.
how can you use this rewrite but exclude directories
Hello i just wondering if there is anyway to rewrite underscores to slashes.
Thanks in advance, sorry for my bad english.
it would be better to have html and php extensions skipped using a condition yet still allow querystrings. but more importantly to use one rule to replace underscores and loop it with the N flag instead of trying to anticipate how many there’ll be. this version addresses those issues and trims consecutive underscores to a single hyphen.
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !\.(html|php)($|\?) [NC]
RewriteRule ^([^_]*)_+(.*)$ $1-$2 [E=underscores:Yes,N]
RewriteCond %{ENV:underscores} ^Yes$
RewriteRule (.*) http://%{HTTP_HOST}/$1 [R=301,L]
Haven’t be able to get this to work, and I’ve tried all of the variations in the two further reading links.
I have the file extensions removed on the old site and on the new, so all I really need to do is rewrite the underscores to dashes.
Love to know where I’m going wrong but not being a tech, I don’t really know where toe start.
PS At the moment I’m testing on a local wamp setup before I go messing around with a live environment.
Hello can anyone tell me how can i edit a htaccess multicommand file?i m currently using user friendly code and i added codes for broken links and code for fclearing query_strings
but at the and it did not work:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /friendly_url.php
ErrorDocument 400 http://www.sicaktakip/error_404.html
ErrorDocument 401 http://www.sicaktakip/error_404.html
ErrorDocument 403 http://www.sicaktakip/error_404.html
ErrorDocument 404 http://www.sicaktakip/error_404.html
ErrorDocument 500/http://www.sicaktakip/index.php
RewriteCond %{QUERY_STRING} ^source= RewriteRule (.*) /$1? [R=301,L]
Anyone any idea for that?
Hi – Great resource. At the risk of sounding ignorant, could you please tell me where abouts (i.e. in which directory/folder/subdirectory I would place this code to ensure the rewrite to dashes works? Thanks
Tags: 301 Redirect, Apache, Apache Htaccess, askapache, Elite, GET, Google, Htaccess, htaccess guide, htaccess tutorial, Mod_Rewrite, PHP, Redirect, Rewrite Tricks, rewritecond, rewriterule, SEO, SymLinks, tutorial,
It's very simple - you read the protocol and write the code. -Bill Joy
HTML | DCMI | GRDDL | XOXO | XDMP | XFN | DOM | XML | XHTML 1.1 Strict | CSS 2.1 | W3C
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 License, just credit with a link.
This site is not supported or endorsed by The Apache Software Foundation (ASF). All software and documentation produced by The ASF is licensed. "Apache" is a trademark of The ASF. NCSA HTTPd.
UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
And what’s your suggestion if the URL can include up to 16 underscores that should be rewritten to hyphens?