使用htaccess

时间:2016-06-06 07:47:29

标签: php apache .htaccess mod-rewrite

我创建了一个php网站,我遇到了我的1个问题,即使用htaccess删除URL中的查询字符串。

public_html

中的主机目录
  • 的index.php
  • product.php
  

index.php 中,我在数据库

的查询中放置了一个链接
<a href="product.php?id=<?php echo $row['P_ID']; ?><?php echo $row['P_ID']; ?></a>
  

它将在product.php中重定向以显示特定产品,只需说明您选择或单击产品ID 100它将显示该产品ID的详细信息。网址为 www.mysite.com/product.php?id=100

     

在product.php中,我使用代码<?php $pid = intval($_GET['id']); ?>来获取product.php页面中特定产品的详细信息。

我想使用.htaccess删除网址中的查询字符串,代码为 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/?$ product.php?id=$1

但它不能帮我删除查询字符串。我希望我的URL清理sql注入攻击。所以在查询字符串清理之后它会是这样的 www.mysite.com/product/100

我需要先进的帮助。

1 个答案:

答案 0 :(得分:0)

它很简单,只需使用:

RewriteCond%{QUERY_STRING}&#34; post_type =&#34; [NC]

RewriteRule(。*)/ $ 1? [R = 301,L]

如果要将其添加到wordpress网站,则需要在任何wordpress规则之前添加它:

RewriteRule ^ index.php $ - [L]

RewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

RewriteRule。 /index.php [L]

但是

之后

RewriteBase /