You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by David Blomstrom <da...@yahoo.com> on 2005/08/15 03:52:18 UTC

[users@httpd] Mod_rewrite Newbie Questions

I've bookmarked several mod_rewrite tutorials and am
currently working on one at
http://www.devarticles.com/c/a/Web-Services/Make-Dynamic-URLs-Search-Engine-Friendly/3/

I very quickly got hung up on a couple items. Before I
continue, let me give you a brief overview of what I
want to do.

You can see a page where I want to display articles
about animals at http://www.geozoo.org/stacks/

If you change the URL to 
http://www.geozoo.org/stacks/index.php?taxon=Animalia,
then you can click "Chordata" at the top of the column
on the right, changing the URL to
http://www.geozoo.org/stacks/index.php?taxon=Chordata.
You can continue clicking Mammalia, followed by any
order, with similar results.

I want to change this so the URL's follow this
pattern:

http://www.geozoo.org/stacks/Animalia
http://www.geozoo.org/stacks/Chordata
http://www.geozoo.org/stacks/Mammalia

There will tentatively be articles for kids at the
following rewritten URL's:

http://www.geozoo.org/kids/stacks/Animalia
http://www.geozoo.org/kids/stacks/Chordata
http://www.geozoo.org/kids/stacks/Mammalia

Another section produces raw URL's that look like
these:

http://www.geozoo.org/topics/index.php?topic=Biomes
http://www.geozoo.org/topics/index.php?topic=Tundra
http://www.geozoo.org/topics/index.php?topic=Tundra+Mammals

I want them shortened to...

http://www.geozoo.org/topics/Biomes
http://www.geozoo.org/topics/Tundra
http://www.geozoo.org/topics/Tundra+Mammal

So I have three basic "raw" URL's that look something
like this:

http://www.geozoo.org/stacks/index.php?taxon=Animalia
http://www.geozoo.org/kids/stacks/index.php?taxon=Animalia
http://www.geozoo.org/topics/index.php?topic=Tundra+Mammals

I want them to display like this:

http://www.geozoo.org/stacks/Animalia
http://www.geozoo.org/kids/stacks/Animalia
http://www.geozoo.org/topics/Tundra Mammals

* * * * * * * * * *

The tutorial directed me to visit the infamous
mod_rewrite RewriteRule Generator at
http://www.webmaster-toolkit.com/mod_rewrite-rewriterule-generator.shtml

I want to get this up and running on my computer
first, and I assume everything will automatically be
translated for the Internet when I publish my files
online. So I used
http://geozoo/stacks/index.php?taxon=Animalia as an
example of "Your Dynamic URL," then chose Directory

I entered this for Page Name:

http://geozoo/stacks/Animalia

It generated this rule:

Options +FollowSymLinks
RewriteEngine on
RewriteRule index/(.*)/(.*)/$ /stacks/index.php?$1=$2

...and said my page would be rewritten to this URL:

http://geozoo/index/taxon/Animalia/

Instead, I want it rewritten to
http://geozoo/stacks/Animalia/, which will translate
(I hope) into http://www.geozoo.org/stacks/Animalia.

But I decided to play with this for the time being. So
I created a .htaccess file and pasted the rule in it.

But when I type http://geozoo/index/taxon/Animalia/
into my browser, I get no results. So I appear to be
doing at least two things wrong.

* * * * * * * * * *

I haven't been restarting my computer at various steps
of this tutorial, because I haven't been directed to
do so. I have a str_replace function designed to
replace spaces in multi-word phrases like "Tundra
Mammals" with a +, but I'm using it on this page yet.

Do you have any idea what I'm doing wrong?

Thanks.


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Mod_rewrite Newbie Questions

Posted by John Hicks <jo...@gulfbridge.net>.
David--

The way you describe your problem indicates you may misunderstand what 
URL rewriting does.

 > So I have three basic "raw" URL's that look something
 > like this:
 >
 > http://www.geozoo.org/stacks/index.php?taxon=Animalia
 > http://www.geozoo.org/kids/stacks/index.php?taxon=Animalia
 > http://www.geozoo.org/topics/index.php?topic=Tundra+Mammals
 >
 > I want them to display like this:
 >
 > http://www.geozoo.org/stacks/Animalia
 > http://www.geozoo.org/kids/stacks/Animalia
 > http://www.geozoo.org/topics/Tundra Mammals
 >

Your objective isn't to display URLS but to translate user friendly URLS 
(entered by your users) into program-friendly URLs (which Apache then 
passes to your php programs).

You want to translate
this http://www.geozoo.org/stacks/Animalia
into http://www.geozoo.org/stacks/index.php?taxon=Animalia
by using this rule:
RewriteRule ^/stacks/(.*)$  /stacks/index.php?taxon=$1 [L]

from http://www.geozoo.org/kids/stacks/Chordata
to   http://www.geozoo.org/kids/stacks/index.php?taxon=Animalia
RewriteRule ^/kids/stacks/(.*)$ /kids/stacks/index.php?taxon=$1 [L]

from http://www.geozoo.org/topics/Tundra+Mammal
to   http://www.geozoo.org/topics/index.php?topic=Tundra+Mammals
RewriteRule ^/topics/(.*)$ /topics/index.php?topic=$1 [L]

So you'll need something like this in your httpd.conf:

RewriteEngine on
RewriteLog logs/rewrite.log
RewriteLogLevel 1
RewriteRule ^/stacks/(.*)$  /stacks/index.php?taxon=$1 [L]
RewriteRule ^/kids/stacks/(.*)$ /kids/stacks/index.php?taxon=$1 [L]
RewriteRule ^/topics/(.*)$ /topics/index.php?topic=$1 [L]

Hope that helps,

John



David Blomstrom wrote:
> I've bookmarked several mod_rewrite tutorials and am
> currently working on one at
> http://www.devarticles.com/c/a/Web-Services/Make-Dynamic-URLs-Search-Engine-Friendly/3/
> 
> I very quickly got hung up on a couple items. Before I
> continue, let me give you a brief overview of what I
> want to do.
> 
> You can see a page where I want to display articles
> about animals at http://www.geozoo.org/stacks/
> 
> If you change the URL to 
> http://www.geozoo.org/stacks/index.php?taxon=Animalia,
> then you can click "Chordata" at the top of the column
> on the right, changing the URL to
> http://www.geozoo.org/stacks/index.php?taxon=Chordata.
> You can continue clicking Mammalia, followed by any
> order, with similar results.
> 
> I want to change this so the URL's follow this
> pattern:
> 
> http://www.geozoo.org/stacks/Animalia
> http://www.geozoo.org/stacks/Chordata
> http://www.geozoo.org/stacks/Mammalia
> 
> There will tentatively be articles for kids at the
> following rewritten URL's:
> 
> http://www.geozoo.org/kids/stacks/Animalia
> http://www.geozoo.org/kids/stacks/Chordata
> http://www.geozoo.org/kids/stacks/Mammalia
> 
> Another section produces raw URL's that look like
> these:
> 
> http://www.geozoo.org/topics/index.php?topic=Biomes
> http://www.geozoo.org/topics/index.php?topic=Tundra
> http://www.geozoo.org/topics/index.php?topic=Tundra+Mammals
> 
> I want them shortened to...
> 
> http://www.geozoo.org/topics/Biomes
> http://www.geozoo.org/topics/Tundra
> http://www.geozoo.org/topics/Tundra+Mammal
> 
> So I have three basic "raw" URL's that look something
> like this:
> 
> http://www.geozoo.org/stacks/index.php?taxon=Animalia
> http://www.geozoo.org/kids/stacks/index.php?taxon=Animalia
> http://www.geozoo.org/topics/index.php?topic=Tundra+Mammals
> 
> I want them to display like this:
> 
> http://www.geozoo.org/stacks/Animalia
> http://www.geozoo.org/kids/stacks/Animalia
> http://www.geozoo.org/topics/Tundra Mammals
> 
> * * * * * * * * * *
> 
> The tutorial directed me to visit the infamous
> mod_rewrite RewriteRule Generator at
> http://www.webmaster-toolkit.com/mod_rewrite-rewriterule-generator.shtml
> 
> I want to get this up and running on my computer
> first, and I assume everything will automatically be
> translated for the Internet when I publish my files
> online. So I used
> http://geozoo/stacks/index.php?taxon=Animalia as an
> example of "Your Dynamic URL," then chose Directory
> 
> I entered this for Page Name:
> 
> http://geozoo/stacks/Animalia
> 
> It generated this rule:
> 
> Options +FollowSymLinks
> RewriteEngine on
> RewriteRule index/(.*)/(.*)/$ /stacks/index.php?$1=$2
> 
> ...and said my page would be rewritten to this URL:
> 
> http://geozoo/index/taxon/Animalia/
> 
> Instead, I want it rewritten to
> http://geozoo/stacks/Animalia/, which will translate
> (I hope) into http://www.geozoo.org/stacks/Animalia.
> 
> But I decided to play with this for the time being. So
> I created a .htaccess file and pasted the rule in it.
> 
> But when I type http://geozoo/index/taxon/Animalia/
> into my browser, I get no results. So I appear to be
> doing at least two things wrong.
> 
> * * * * * * * * * *
> 
> I haven't been restarting my computer at various steps
> of this tutorial, because I haven't been directed to
> do so. I have a str_replace function designed to
> replace spaces in multi-word phrases like "Tundra
> Mammals" with a +, but I'm using it on this page yet.
> 
> Do you have any idea what I'm doing wrong?
> 
> Thanks.
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> 
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>    "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org