2016-07-22 162 views
0

我知道这种类型的问题已被问及回答,我已经尝试了几种方法来做到这一点,但我不能让它工作。 所以我访问那里我已经的产品和分页列表的页面,暂时更改页面的URL是这样的:隐藏GET参数与URL重写.htaccess

domain.com/brands?p=2 

,我想访问它这样:

domain.com/brands/2 

最后的办法我想是这样的一个:

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

,但是当我试图访问该页面,我得到一个404错误。

那么是否有错误?或者问题位于其他地方?像与这一个干涉另一个URL重写..

+1

不是你有没有扩展名?像.php或什么的? – Grommy

+0

可能已经存在重写(这将是缺少文件扩展名的一种解释),这会干扰这种新的重写 - 可能是*品牌*是一个目录,并且URL实际上是* /品牌/索引.php * – CD001

+0

是的,它有一个扩展名,但是正如CD001所说,我猜这里已经有了一个改写。其实我使用的是CMS(prestashop),目前我并不知道原始文件的用途是什么。 至少我知道问题不是来自我试过的规则。 –

回答

0

这里有一个例子,你可以申请:

Rewriterule ^post/([0-9]+)/?$ /blog.php?id_blogs=$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] 

使用确保为ON RewriteEngine叙述

RewriteEngine on 
0

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

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