2011-12-19 202 views
3

我有一個網站建在.php,但我們已經通過使用「mod rewrite」將它轉換爲.html。在.htaccess使用國防部重寫代碼.php url to .html url

RewriteEngine on 
RewriteRule ^(.*)\.html$ $1.php 

現在的問題是我的網站在兩個.php.html顯示出來。

例如:www.mydomain.com/index.htmlwww.mydomain.com/index.php

據我所知,它不適合seo的目的,也可能會重複搜索引擎的內容。

,所以我決定只保留.html [not .php]直播網址在搜索引擎和用戶。

該怎麼辦?

回答

0

你不能只將.php文件重命名爲.html並刪除RewriteEngine規則嗎? PHP應該仍然按預期運行。

+0

只有PHP是設置解析* .html文件的工作(不推薦) – Criss 2011-12-19 14:29:45

+0

爲什麼沒有這個建議?爲了保持清楚的定義什麼是PHP和什麼不是? – 2011-12-19 14:30:30

+1

如果您將腳本配置爲允許* .html上傳(通常沒有問題),那麼如果您打開它們,它們將被解析。問題是,你現在可以任意驗證php什麼的。 – Criss 2011-12-19 14:32:04

6

UPDATE incoorperated意見(謝謝你們)

增加其重定向所有* .PHP爲* .html文件的其他規則之前,另一個重寫規則。 類似的東西:

RewriteRule ^(.*).php$ $1.html [R=301,QSA,L] 

重定向(R標誌)的所有PHP文件以永久重定向(301)爲HTML和停止處理一切(L標誌)。此外,它轉發所有查詢參數(QSA標誌)

+0

您忘記了反斜槓,並要求在轉發(QSA)中保留查詢參數:**'RewriteRule ^(。*)\。php $ $ 1.html [R = 301,QSA,L] ** – 2011-12-19 16:22:14

+0

謝謝你們,更新了帖子和我自己的規則:) – Criss 2011-12-20 12:17:09

+0

「guy ** s **」?我是唯一一個! =) – 2011-12-20 12:29:40

0

最簡單的方法是簡單地否認在robots.txt「.PHP」。

User-Agent: * 
Disallow: *.php 

所有適當的蜘蛛會服從該指令

+0

問題在於,蜘蛛可能已經爬過了該網站。那麼他們抓取頁面的時間會發生什麼?要麼刪除這些網站,要麼將其保留在索引中。最好是301重定向(永久移動)。 – Criss 2011-12-19 14:49:51

+1

他們會在下次訪問時加載robots.txt並採取相應措施。我剛剛使用這種方法來擺脫谷歌上的幾個頁面。簡單而直接。 – Dayo 2011-12-19 14:54:52

+0

但它對搜索結果有什麼幫助?和用戶?將解決重複的內容問題? – sammrat23 2011-12-27 23:03:22