使用htaccess从url中删除get值

时间:2016-12-09 08:55:02

标签: php apache .htaccess mod-rewrite

http://example.com/results.php?products=apple

将更清晰地显示为:

http://example.com/products/apple

.htaccess文件中的行如下所示:

RewriteEngine on
RewriteRule ^products/([A-Za-z0-9-]+)/?$ results.php?products=$1 [NC]

这些工作正常。但问题是在此之后要求所有页面打开

  

产品/

这意味着我的 result.php 文件包含很多链接,所有链接都在 product / 中打开,并在服务器错误中显示一个不存在的文件。

1 个答案:

答案 0 :(得分:1)

尝试这样,它会告诉服务器请求uri既不是文件也不是目录。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^products/([\w-]+)/?$ results.php?products=$1 [QSA,L,NC]