.htaccess干净的网址不起作用

时间:2014-07-05 14:52:22

标签: php .htaccess

这是我的表格

<form id="search" action="search.php" method="GET">
        Search : 
        <input type="text" id="searchKeyword" name="searchKeyword" placeholder="Search Keyword" />
        <input type="submit" id="btnSubmit" name="submit" value="search" /> 
    </form>

这是我的search.php文件:

<?php 
include("includes/connection.php"); 

header('Content-type: text/html; charset=utf-8');
?>

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Search script by Mode2Code.Org</title>
    <link rel="stylesheet" type="text/css" href="style/style.css">
</head>
<body>
<a href="index.php" id="back">Back!</a>

    <?php
    $keyword = $_GET['searchKeyword'];

    $keyword = htmlspecialchars($keyword);

    $insertQuery = "INSERT INTO searched (keyword) VALUES ('" . $keyword . "')";

    $insert = mysql_query($insertQuery);
    ?>
</body>

当我输入关键字并按下搜索按钮时,它会像这样生成网址: website.com/search.php?searchKeyword=sometext

但我希望我的网址是这样的 websute.com/search/sometext

这里是我的.htaccess

  Options +FollowSymLinks
  RewriteEngine On

  RewriteCond %{SCRIPT_FILENAME} !-d
  RewriteCond %{SCRIPT_FILENAME} !-f

  RewriteRule ^profile/(\w+)$ ./search.php?searchKeyword=$1
  RewriteRule ^profile/(\w+)/$ ./search.php?searchKeyword=$1

我认为我的.htaccess没有错误,但它没有用。 当我试图访问这个网址时,我会向我显示404错误。

任何人都可以帮助我吗?

PS我是php的初学者:|

1 个答案:

答案 0 :(得分:0)

尝试以下代码。

首先更改您的表单操作,因为默认操作是发布search.php,您需要重定向它。

<form id="clean" method="get" action="./search/">
    <input type="search" name="searchKeyword" value="Text" />
    <input type="submit" name="submit" />
</form>

其次,要重新定向它,您需要添加一些Javascript代码,如果不包含该表单,请在表单所在的页面中包含jQuery:

<script>
    $("#clean").submit(function(event) {
        event.preventDefault();
        $(location).attr('href',$(this).attr("action") + $("input[name$='searchKeyword']").val());
    });
</script>

最后,将.htaccess文件更改为更简单的版本,同时将您的重定向页面更改为配置文件。

RewriteEngine On
#RewriteBase /stackoverflow/  : You may need to define the base too if it's in subdirectory
RewriteRule ^search/(.*)/?$  search.php?searchKeyword=$1 [L]