Go Back   CodingForums.com > :: Server side development > Apache configuration

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 07-09-2010, 03:37 AM   PM User | #1
-Karl-
New Coder

 
Join Date: Nov 2009
Posts: 39
Thanks: 2
Thanked 0 Times in 0 Posts
-Karl- is an unknown quantity at this point
Rewrite rule, need some help.

So far I have:
Code:
Options +FollowSymLinks
RewriteEngine on
RewriteRule \.(gif|png|jpg|css|js)$|^index\.php$ - [L]
RewriteRule ^quests/(.*)/(.*)$ quests.php?flibble=questview&id=$2&ic=1
RewriteRule ^(.*)$ index.php?page=$1
What I'm trying to do is.

www.mysite.com/quests works fine, the images load and so does the content.

However, if I do something like

www.mysite.com/quests/

it fails to load the images or the content.

I'm also trying to dynamically create a page.

so that www.mysite.com/quests/questname/questid would load the appropriate information. The link currently looks like
quest.php?flibble=questview&id=QUESTID&ic=1 where QUESTID is the number of the quest entry. However, I just can't get my head around it.

This is my function for showing the quest:
PHP Code:
function questview($id) {

require_once (
'includes/connect.php');//connect to db
include ('includes/steps.php');
 
/* query for item */
    
$query "SELECT * FROM quest WHERE id=$id";
    
$result mysql_query ($query);
    
    
/* if we get no results back, error out */
$numrtn mysql_num_rows($result);

    if (
$numrtn == 0) {
        echo 
"The quest guide requested cannot be found\n";
        echo 
$id;
        return;
    }
    
$row mysql_fetch_assoc($result);
    
/* easier to read variables and 
     * striping out tags */
    
$id $row['id'];
    
$name $row['name'];
    
$contributors $row['contributors'];
    
$guideby $row['guideby'];
    
$added $row['added'];
    
$location $row['startinglocation'];
    
$members $row['members'];
    
$description $row['description'];
    
$difficulty $row['difficulty'];
    
$requirements $row['requirements'];
    
$items $row['items'];
    
$reward $row['reward'];
    
$guide $row['mainbody'];
    
$length $row['length'];
    
$updated $row['updated'];
    if (
$members == "Y") {
        
$mem "members only quest</b>, so it can only be done on a <b>members</b> server.";
    }else{
        
$mem "non-members quest</b>.";
    }
    if (
$updated == 0){
    
$up 'No-one has updated this quest guide';    
    }else{    
    
$date2 date("l jS F Y @ H:i:s "$updated);
    
$up 'It was last updated on '.$date2;
    }
    if (
$contributors != ""){
    
$con 'Thanks also to <b>'.$contributors.'</b> for changes.';    
    }else{
    
$con 'No-one else has contributed to this quest guide.';
    }
    
//$date = date("D M jS, Y g:i a", $added);
    
$date date("l jS F Y @ H:i:s "$added);
    
echo 
'
<div id="quest"><table width="100%" border="0">
  <tr>
    <td>
        <h1 align="center">'
.$name.'</h1>
'
;
echo 
step_js();
echo 
pick_clue($id);
echo 
toggle_reward();
echo 
toggle_clue();
echo 
'<br>';
echo 
'
<p class="text1">This quest guide was written by <b>'
.$guideby.'</b> for use on Runehints and entered into the database on '.$date.'. '.$up.'. '.$con.'  <br /></p>
<p><span class="text1"><br />This quest is <b>'
.$mem.'</span></p>
<p>
<span class="qtitle">Description: </span><span class="text1">'
.$description.'</span></p>
<p><span class="qtitle">Difficulty Level: </span><span class="text1">'
.$difficulty.'</span></p>
<p>
<span class="qtitle">Requirements: </span><span class="text1">'
.$requirements.'</span></p>

<p>
<span class="qtitle">Items Needed During Quest: </span><span class="text1">'
.$items.'</span></p>
<p>
<span class="qtitle">Starting Location: </span><span class="text1">'
.$location.'</span></p>
  <p><span class="qtitles">Quest Instructions:</span></p>'
;
  echo 
list_steps($idtrue);
echo 
'<p>
<div id="rewardwrap" style="display:none;"><span class="qtitle">Reward: </span><span class="text1">'
.$reward.'</span></div></p>
  &nbsp;</td>
  </tr>
</table></div> '
;

Here's the switch:
PHP Code:
    switch($_GET['flibble']) {
    
    case 
'selectquest':
        
selectquest();
        break;
    case 
'questview':
        
questview($_GET['id']);
        break;        
    default:
        
selectquest();

I didn't write the function, so it needs modification to work with the rewrite rule.

Any help is greatly appreciated, if you need more information, please ask.

Regards,
Karl

Last edited by -Karl-; 07-09-2010 at 03:48 AM..
-Karl- is offline   Reply With Quote
Old 07-09-2010, 08:09 AM   PM User | #2
abduraooft
Supreme Master coder!

 
abduraooft's Avatar
 
Join Date: Mar 2007
Location: N/A
Posts: 14,689
Thanks: 158
Thanked 2,184 Times in 2,171 Posts
abduraooft is just really niceabduraooft is just really niceabduraooft is just really niceabduraooft is just really niceabduraooft is just really nice
Quote:
www.mysite.com/quests works fine, the images load and so does the content.

However, if I do something like

www.mysite.com/quests/

it fails to load the images or the content.

I'm also trying to dynamically create a page.
The short answer is, use absolute paths(starting with /) to refer all elements from clients side. See http://www.codingforums.com/showthre...167#post784167
__________________
Quote:
The Dream is not what you see in sleep; Dream is the thing which doesn't let you sleep. --(Dr. APJ. Abdul Kalam)
abduraooft is offline   Reply With Quote
Old 07-09-2010, 09:31 AM   PM User | #3
-Karl-
New Coder

 
Join Date: Nov 2009
Posts: 39
Thanks: 2
Thanked 0 Times in 0 Posts
-Karl- is an unknown quantity at this point
That does nothing except make the images not work.
-Karl- is offline   Reply With Quote
Old 07-09-2010, 09:38 AM   PM User | #4
abduraooft
Supreme Master coder!

 
abduraooft's Avatar
 
Join Date: Mar 2007
Location: N/A
Posts: 14,689
Thanks: 158
Thanked 2,184 Times in 2,171 Posts
abduraooft is just really niceabduraooft is just really niceabduraooft is just really niceabduraooft is just really niceabduraooft is just really nice
Then you might be doing something wrong! Can't say anything without seeing a link to your page.
__________________
Quote:
The Dream is not what you see in sleep; Dream is the thing which doesn't let you sleep. --(Dr. APJ. Abdul Kalam)
abduraooft is offline   Reply With Quote
Old 07-09-2010, 10:09 AM   PM User | #5
-Karl-
New Coder

 
Join Date: Nov 2009
Posts: 39
Thanks: 2
Thanked 0 Times in 0 Posts
-Karl- is an unknown quantity at this point
http://www.runehints.com/rhnew/

That's what I have so far, as you can see. /quests, /skills, etc work.

Here's my index.php:
PHP Code:
<?php
function HtmlOut($Str) {
    return 
htmlentities($StrENT_QUOTES);
}
include (
'tpl/header.tpl');

if (isset(
$_GET['page'])) {
    if (
preg_match('/^[a-zA-Z0-9-\/]+$/D'$_GET['page'])) {
        
$_GET['page'] = str_replace('/'''$_GET['page']);
        if (
is_file('pages/'.$_GET['page'].'.php')) {
            
$Page=$_GET['page'];
        } else {
            echo 
'<div id="contenttitle">File Not Found</div>
                        <div class="news">
                        <h1>File not Found</h1>
                              <p>Unfortunately but the file "<span>'
.HtmlOut($_GET['page']).'</span>" could not be found.</p>
                              <p>If you believe this is an error, please contact an administrator immediately.</p>
                        </div>'
;
        }
    } else {
        
$Flash='File &quote;'.HtmlOut($_GET['page']).'&quote; not found.';
    }
}
if ((empty(
$_GET['page'])) && (!file_exists('pages/'.$Page.'.php'))) {
    
$Page 'index';
}
if (
is_file('pages/'.$Page.'.php') && file_exists('pages/'.$Page.'.php')) {
include(
'pages/'.$Page.'.php');
}

include (
'tpl/sidebar.tpl');
include (
'tpl/footer.tpl');

?>
-Karl- is offline   Reply With Quote
Old 07-09-2010, 10:17 AM   PM User | #6
abduraooft
Supreme Master coder!

 
abduraooft's Avatar
 
Join Date: Mar 2007
Location: N/A
Posts: 14,689
Thanks: 158
Thanked 2,184 Times in 2,171 Posts
abduraooft is just really niceabduraooft is just really niceabduraooft is just really niceabduraooft is just really niceabduraooft is just really nice
I've mentioned about the changing "all the paths" in that link in my first post. That means, your link to CSS file should be
Code:
<link href="/rhnew/css/styles.css" type="text/css" rel="stylesheet">
Making the above change will show you some progress.

Then you have to change all paths to images in the above format, say
Code:
body{margin:0;padding:0;
background: #000 url('./../images/bg-overall.jpg'); background-position: center top; background-repeat: no-repeat;font: 76% arial,sans-serif;text-align:center;}
should be changed to
Code:
body{margin:0;padding:0;
background: #000 url('/rhnew/images/bg-overall.jpg'); background-position: center top; background-repeat: no-repeat;font: 76% arial,sans-serif;text-align:center;}
Similarly for all <img>, <script>, <a> tags.
__________________
Quote:
The Dream is not what you see in sleep; Dream is the thing which doesn't let you sleep. --(Dr. APJ. Abdul Kalam)
abduraooft is offline   Reply With Quote
Users who have thanked abduraooft for this post:
-Karl- (07-09-2010)
Old 07-09-2010, 10:24 AM   PM User | #7
-Karl-
New Coder

 
Join Date: Nov 2009
Posts: 39
Thanks: 2
Thanked 0 Times in 0 Posts
-Karl- is an unknown quantity at this point
Okay that's fine, the thing I can't get working now is the quests rewrite rule. To make www.mysite.com/quests/questname/id work correctly.
-Karl- is offline   Reply With Quote
Reply

Bookmarks

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 08:09 AM.


Advertisement
Log in to turn off these ads.