使用htaccess在php中搜索查询字符串的搜索引擎友好URL

时间:2014-01-06 08:11:08

标签: php .htaccess

我正在研究php实际上我需要搜索引擎搜索查询脚本的SEO网址我写在名为newtheme(文件夹名称)的文件夹中。当我尝试做SEO搜索时,工作搜索时没有找到工作。请检查我的代码并纠正我在哪里做错了。

在我的htaccess中

RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{QUERY_STRING} ^searchword=([^&]+)$
RewriteRule ^results.php$ /newtheme/%1/? [L,R=301]

在我的results.php中

if($_GET['searchword'];
{
$q= mysql_real_escape_string($_GET['searchword']);
$sql=mysql_query("select * from table where keyword='$q'");
$row=mysql_fetch_array($sql);
echo $row['title'];
}
?>

htaccess文件作为newtheme放在我的文件夹里面。脚本文件夹localhost / newtheme / .htaccess

2 个答案:

答案 0 :(得分:0)

作为绝对最小值,请在将其提供给MySQL查询之前转义搜索词。

$q = mysql_real_escape_string($_GET['searchword']);

如果我正确理解您的实现,那么您正尝试SEF重写针对您的results.php文件的查询,该文件位于newtheme目录中,尝试类似这样的事情

RewriteRule ^searchword/([\ A-Za-z0-9-_,]+)?$ /newtheme/results.php?searchword=$1 [NC,L]

答案 1 :(得分:0)

您的/newtheme/.htaccess文件中需要这两条规则:

RewriteEngine On
RewriteBase /newtheme/

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+newtheme/results\.php\?searchword=([^\s&]+) [NC]
RewriteRule ^ search/%1? [R=302,L]

# internal forward from pretty URL to actual one
RewriteRule ^search/([^/.]+)/?$ results.php?searchword=$1 [L,QSA,NC]