我该如何重定向?

时间:2013-11-22 19:04:30

标签: php regex apache .htaccess mod-rewrite

我创建了一个用户可以来创建博客的页面,摘自创建新博客页面: -

<tr>
<td>Blog URL</td>
<td>www.foo.com/blogs/ <input type="text" name="ns"></td>
</tr>

现在,用户会在该文本框中输入内容,假设用户输入 foobar ..然后我如何设置.htaccess,以便用户可以通过<访问该博客strong> www.foo.com/blogs/foobar 而不是www.foo.com/blogs.php?id=somethinghere ..

如何实现这一目标?

感谢。

更新

感谢@anubhava提供的htaccess代码,但它似乎没有正常工作,这就是我现在所拥有的。

blogs.php

<?php
session_start();
include 'dbconnector.php';
include 'functions.php';
$owner=$_SESSION['username'];
$id=$_GET['id'];

$equery="select * from events where eventid = '" . $id . "'";
$resulte=mysql_query($resulte) or die (mysql_error($db));
$rowe=mysql_fetch_assoc($resulte);
if((isset($_SESSION['logged'])) && ($_SESSION['logged']==1))
{
?>

Name : <?php echo ($rowe['name']); ?>
Zipcode : <?php echo ($rowe['zipcode']); ?>
<?php
}
else
{
    header('Location:/login/');
    exit();
}
?>

此代码应该为具有id的博客提取记录,然后将URL重写为www.foo.com/blogs/namehere,如果我直接打开www.foo.com/blogs/namehere

namehere 是用户在创建博客时输入的名称,但我得到的唯一错误是找不到404页面。 在这里真的很困惑,请解释一下这是如何起作用的。 感谢。

1 个答案:

答案 0 :(得分:1)

将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On
RewriteBase /m/

RewriteRule ^blogs/(.+)$ blogs.php?id=$1 [L,QSA]