这是我的表格
<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的初学者:|
答案 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]