2011-07-29 2 views
0

は、ここに私の.htaccessファイルの一部です:/index.phpの内容を表示するにはどうすればいいですか?

.htaccessファイル:

RewriteRule ^([a-z0-9A-Z_-]+)$ /article/index.php?title=$1 [L] 

しかし、問題はtitleが空になったとき、それは私にhttp://www.domain.com/index.phpの内容を示していないということです。私はエラーをスローせずにhttp://www.domain.com/にもうリンクすることができません。

PHP:http://www.domain.com/article/index.php

<?php 

if(!empty($_GET['title'])) 
{ 
    $a = mysql_query("SELECT * FROM `articles` WHERE `title` = '".mysql_real_escape_string($_GET['title'])."'"); 
} 
else 
{ 
    $a = mysql_query("SELECT * FROM `articles` WHERE `id` = '".mysql_real_escape_string($_GET['id'])."'"); 
} 

$b = mysql_fetch_assoc($a) or mysql_error(); 

?> 
+0

'else 'の場合に' $ _GET [' id '] 'を渡すことは決してないようです。 –

+0

さて、私は 'title'が空であれば' $ _GET ['id'] 'をつかんで、それをクエリに渡すと仮定しました。そのidでレコードがない場合は、エラーを投げます。それとも間違いですか? –

+0

あなたのhtaccessルールは 'id'パラメータを提供しないので、常に空です。 –

答えて

0

あなたはかなりの2つの選択肢があります。

1.このルールを:ホーム・ページがヒットした場合、あなたがする必要があるので、その後、titleパラメータは(空になります何らかの形でこの瞬間を処理する - それに応じてPHPコードを調整する)。ホームページ/ Webサイトのルートヒットのため

RewriteRule ^([a-z0-9A-Z_-]*)$ /article/index.php?title=$1 [QSA,L] 

2.特定のルール(前に、あなたの現在のルールを追加します):

RewriteRule ^$ /article/index.php?title=home [QSA,L] 

title=homeは、それはあなたが変更することができます(Webサイトのルートのヒットだ意味しますhome)を入力してください。

+0

ありがとう、LazyOne;) –

関連する問題