2014-05-10 157 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