使用.htaccess中的url重写隐藏GET参数

时间:2016-07-22 13:01:17

标签: php .htaccess mod-rewrite

我知道这类问题已经被问及并回答了,我已经尝试了几种方法,但我无法使其发挥作用。 所以我访问了一个页面,其中列出了我的产品列表和分页,暂时改变页面的网址是这样的:

domain.com/brands?p=2

我想这样访问:

domain.com/brands/2

我尝试的最后一种方式就是这个:

RewriteRule ^brands/([0-9]*)$ brands?p=$1 [L]

但是当我尝试访问该页面时,我收到404错误。

那有误吗?或者问题出在其他地方?像另一个干扰这个的URL重写...

3 个答案:

答案 0 :(得分:0)

以下是您可以申请的示例:

Rewriterule ^post/([0-9]+)/?$ /blog.php?id_blogs=$1

答案 1 :(得分:0)

你可以尝试这个:

RewriteCond %{THE_REQUEST} /brands\.php\?p=([^\s&]+) [NC]
RewriteRule ^ brands/%1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^brands/([^/]+)/?$ index.php?p=$1 [L,QSA,NC]

确保使用

打开RewriteEngine
RewriteEngine on

答案 2 :(得分:0)

使用以下代码隐藏获取参数

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog/(.*)/$ /blog.php?slug=$1 [L]