2014-05-10 119 views
0

我有以下网址:htaccess的查询字符串去除

http://www.efilmsworld.com/film.php?url=blended-film-2014 

而且在.htaccess下面我使用:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)\.html$ /film.php?url=$1 [L,QSA] 

其中重写我的网址:

http://www.efilmsworld.com/blended-film-2014.html 

直到这一点很好。但问题是,我有两个工作的网址,并复制其内容不好:

efilmsworld.com/film.php?url=blended-film-2014 
efilmsworld.com/blended-film-2014.html 

所以我需要删除的查询字符串的URL,例如:

efilmsworld.com/film.php?url=blended-film-2014 
+0

嗯,你可以添加其他重写规则,使外部重定向到“心病rect“版本,在它之前使用RewriteCond检查查询字符串......但如果”双重内容“形成搜索引擎的观点是您的主要关注点,那么在HTML文档中指定一个规范URL就足够了。 – CBroe

+0

谢谢CBroe,善意阐述更多,因为我是非常新的htaccess和有限的知识RewriteEngine – RRPANDEY

回答

0

添加

RewriteCond %{THE_REQUEST} ^(GET|POST)\ /film\.php\?url=(.*)\ HTTP 
RewriteRule^/%2.html? [R=301,L] 

到你的htaccess将解决这个问题。

RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} ^(GET|POST)\ /film\.php\?url=(.*)\ HTTP 
RewriteRule^/%2.html? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)\.html$ /film.php?url=$1 [L,QSA] 

会发生什么事是

  1. 如果进入efilmsworld.com/film.php?url=blended-film-2014随后的URL将得到改写为efilmsworld.com/blended-film-2014.html,然后默默地改写(即在地址栏中的URL不会更改)回efilmsworld.com/film.php?url=blended-film-2014所以内容仍然显示。
  2. 如果输入efilmsworld.com/blended-film-2014.html,它被悄悄地改写为efilmsworld.com/film.php?url=blended-film-2014(这个你已经在做的。
  3. [R=301]标志告诉浏览器(和搜索引擎),该网址已经改变,现在可以在sometitle.html被发现。这页现在只显示一次,所以没有更多的重复内容

编辑:。按要求评论

RewriteCond %{THE_REQUEST} ^(GET|POST)\ /video\.php\?url=(.*)\ HTTP 
RewriteRule^/video/%2.html? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^video/([^/]*)\.html$ /video.php?url=$1 [L,QSA] 
+0

它的工作非常感谢很多Howlin。 – RRPANDEY

+0

亲爱的Howlin,我还有一个其他相关问题,我将“http://www.efilmsworld.com/video.php?url=blended-film-2014”改为“http://www.efilmsworld.com/ video/blended-film-2014.html“请让我知道我可以如何结合这个相同的”电影页面“ – RRPANDEY

+0

好吧,检查我的编辑? – Howli