Jump to content

mod re-write - nearly there, but a bit oif help please ;-)


Mr Chris

Recommended Posts

Hi Guys,

 

Say I have the headline:

 

Man walks in Park

 

Which is dynamically called from the database via a story_id like so:

 

http://www.mywebbysite22.org/section.php?sec=2&story_id=3250

 

I'd like converted like so:

 

http://www.mywebbysite22.org/article/2/man-walks-in-park/

 

So in my php code I added this line to convert the headline:

 

$headline = $row['headline'];
$clean_headline =  str_replace(' ', '-', strtolower($headline)); 

 

and then tried to write this to .htaccess, but it does not work.  I think i'm nearly there, but not quite:

 

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteRule ^article/([0-9]+)/[^/]+-([0-9]+)\ $ section.php?s=$1&story_id=$2 [QSA,L]

 

Can anyone help?

 

Cheers

Thanks a lot,

 

But it's not quite there as it's not working as it's bringing up a 404 any other suggestions?  I'd like it this format:

 

http://www.mywebbysite22.org/section.php?sec=2&story_id=3250

 

replaced by this:

 

http://www.mywebbysite22.org/article/2/man-walks-in-park/

 

with Man Walks in Park being the headine.

 

Thanks

 

My rewrite rule is working fine for me. If I create a file called section.php and place it in my root and add the following code:

<?php

echo '<pre>' . print_r($_GET, true) . '</pre>';

?>

and go to mysite.com/article/2/man-walks-in-park/

then I get this output:

Array
(
    [s] => 2
    [story_id] => man_walks_in_part
)

First of all thanks for this.  I've tried the code you posted and mine shows exactly the same.  Here's a live link:

 

http://www.slougheaz.org/section.php?sec=2&story_id=3167

 

Which should also read as:

 

http://www.slougheaz.org/article/2/dream-ends-in-an-instant/

 

However I get an SQL error as I reply upon GET in my query:

 

$result = mysql_query("Select  * from cms_stories where story_id=".$_GET['story_id']);

 

Is this where it's failing?  Is there any way I can use GET and still have the URL like so?  Or do I need a story_id in there?

 

Thanks for all your help.

 

 

as $_GET['story_id'] holds your headline man-walks-in-park you'll need to use the headline field rather than the story_id field in your query eg:

$headline = mysql_real_escape_string(str_replace('-', ' ', $_GET['story_id']));
$result = mysql_query("SELECT * FROM cms_stories WHERE headline='$headline'");

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.