Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP

I'm doing the "Enhancing Simple PHP Application" project. And having trouble with one Rewrite rule

RewriteEngine On
RewriteRule ^mike/shirts/$ /mike/shirts/shirts.php
RewriteRule ^mike/shirts/([0-9]+)/$ /mike/shirts/shirt.php?id=$1
RewriteRule ^mike/receipt.php$ /mike/receipt/ [R=301]
RewriteRule ^mike/contact.php$ /mike/contact/ [R=301]
RewriteRule ^mike/shirts.php$ /mike/shirts/ [R=301]
RewriteRule ^(mike/shirts/[0-9]+)$ /$1/ [R=301]

RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^shirt.php$ /mike/shirts/%1/? [R=301]

localhost/mike/shirts/shirt.php?id=103 doesn't redirect to /mike/shirts/103

1 Answer

Tom Bedford
Tom Bedford
15,645 Points

Hi Sam

I've not done that particular course however I always find this guide very useful when creating rewrite rules.

Looking at the code should the last line have a % or a $?

I'm pretty sure it should have a %1 since it's referencing a () bracket on a previous line. $1 is only used when referencing a () bracket on the same line. If I'm not mistaken.

Cool link though, I will definitely bookmark this.