我创建了一个php网站,我遇到了我的1个问题,即使用htaccess删除URL中的查询字符串。
public_html
中的主机目录在 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
我需要先进的帮助。
答案 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 /