htaccess modrewrite problem with rewriting url with- dashes solution

I was getting frustrated with trying to write a simple URL like this:

/example-withdash

I used the htaccess code like this:

Rewriterule ^example-withdash$ / [R=301]

I also tried escaping the dash which I thought should have treated it as a literal but that didn't work either:

Rewriterule ^example\-withdash$ / [R=301]

But it wouldn't work, apparently the "-" dash means don't substitute, so this means in plain Engilsh that my rule is not treated as intended or expected.

- (dash)
A dash indicates that no substitution should be performed (the existing path is passed through untouched). This is used when a flag (see below) needs to be applied without changing the path.
  http://httpd.apache.org/docs/current/mod/mod_rewrite.html

The Solution:

Put brackets around the rewrite rule ()

Rewriterule ^(example-withdash)$ / [R=301]

Now it works, it's very simple but quite frustrating when you don't know this.  I actually think Apache should have a debug mode or some switch to run an .htaccess file and verbosely output the interpretation of each rule.

Latest Articles

  • Xen how to mount disk images off-line and access data
  • Xen non-HVM container won't work/boot anymore
  • how to exit xen console session from xm
  • Skype Linux/Ubuntu Sound Echo/Distortion Poor Quality Problem Fix Solution
  • Ubuntu 10.04 Flash Videos have tearing/lines Solution
  • File /etc/vz/conf/ve-vps.basic.conf-sample not found: No such file or directory - Openvz Error solution
  • Ubuntu 10 Nvidia Drivers Not Updated After Kernel Update Solution/How-To Manually Rebuild nvidia kernel modules for Ubuntu
  • What's Needed To Fix Linux
  • mdadm/Debian problem
  • iptables block torrents/torrenting
  • vmware Failed to initialize monitor device 95% power on
  • OpenVPN don't use bridgestart.sh or bridge at all use iptables
  • postfix lopback error solution
  • Drupal/MySQL database error: PDOException: SQLSTATE[42000] [1044] Access denied for user 'db_user'@'localhost' to database 'dbname' in lock_may_be_available() (line 167 of /home/user/public_html/includes/lock.inc).
  • How To Burn ISO Image using cdrtools/dvdrtools for Linux/Unix Ubuntu/Debian/RHEL/Centos etc..
  • Ubuntu Suspend Solution Fix blank screen laptop/computer won't come back
  • iPhone Restore/Backup Location of Notes and Contact/Address Book
  • Install Android SDK and start testing on Debian/Ubuntu: How To Guide/Tutorial
  • gocr - free Linux OCR (Optical Character Recognition) conversion tool
  • Linux Kernel Panic Messages - Symptoms of bad RAM module/stick