mod_rewrite规则

时间:2009-07-24 11:10:09

标签: php mod-rewrite directory

我正在尝试获取URL后的数据并将其发送回主页。我在一台服务器上的.htaccess文件中有错误,所以我在另一台服务器上尝试它。

http://www.newbiemoneymakers.com/bank/旁边的链接应直接发送到http://www.newbiemoneymakers.com/bank/index.php,然后我会获得标题。

我的.htaccess文件说:

RewriteEngine on
RewriteRule ^http://www.newbiemoneymakers.com/bank/([^/\.]+)/?$ index.php?title=$1 [L]

我的索引页面显示:

<?php

    include('includes/functions.php');

    $activeTab = "navhome"; 
    $sent = false;

    $title = (isset($_GET['title']))? mysql_real_escape_string($_GET['title']) : 'Home';    
    $title = str_replace('-',' ', $title);

    if($title != '') {  

        $sql = "SELECT * 
                FROM contents 
                WHERE name LIKE '%$title%'
                LIMIT 1";

        $result = @mysql_query($sql);       
        $row = mysql_fetch_assoc($result);      
    }

    //Set page title
    $pagetitle = (isset($row['name']) && $title != 'Home')? ucwords($row['name']) : "Bank Charges";
?>

但是当我点击任何链接(例如http://www.newbiemoneymakers.com/bank/bank-charges-refund/)时,它会给我一个404页面!

你知道我哪里出错吗?

伊恩

1 个答案:

答案 0 :(得分:2)

RewriteRule的模式只是在URI路径上再次测试(在没有上下文每个目录前缀的.htaccess文件中,因此在没有前导/的根目录中)。

所以这应该有效:

RewriteRule ^bank/([^/.]+)/?$ bank/index.php?title=$1 [L]