2013-04-16 70 views
0

我有一個簡單的文件mydomain.com/business_nottingham.html ,我想重新寫一個SEO友好的URL,例如mydomain.com/business-nottingham/對SEO友好的URL重寫簡單的HTML文件

我搜索了所有的例子,但他們似乎是爲CMSes或PHP腳本設計的。

是否有一個簡單的.htaccess重寫示例可以讓我做一些非常簡單的事情?

編輯:我設法找到下面的代碼終於

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

但是,它仍然沒有完全工作。如果我輸入整潔的URL,我會被重定向到404頁面,但是將.html文件的名稱放到正確的文件中,但是不會給我一個乾淨的URL。

我已經通過閱讀各種文章和教程嘗試過上述各種組合,但由於某些原因,它似乎不適合我。

+0

您的原始URL是seo友好。如果你決定重寫稍微整潔的網址,那麼請確保你也更新了它的所有鏈接並設置301重定向,這樣你就不會破壞任何東西。 – Tiggerito

+0

好的,是的,我意識到它已經非常適合搜索引擎優化 - 我只是想讓它更整潔。 對於如何進行重寫,你有答案嗎? –

回答

1

您只想在實際請求爲.html文件時重定向,然後您想要在內部重寫爲html文件。 URL解析的方式是瀏覽器顯示它認爲正在發生的地方(地址欄中的URL),然後請求發送到Web服務器。如果Web服務器(htaccess文件所在的位置)想要更改瀏覽器的URL地址欄中的內容,則需要告知瀏覽器從字面上加載完全不同的URL。瀏覽器然後將請求新的URL。然後,服務器必須在內部將該URL重新寫回到實際資源的位置(第一個URL),但瀏覽器不會看到發生這種情況。

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^\ ]+)\.html 
RewriteRule^/%2/ [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/(.*?)/?$ 
RewriteCond %{DOCUMENT_ROOT}/%1.html -f 
RewriteRule^/%1.html [L] 
+0

這看起來像你的答案。同時更新任何內部鏈接到新的結構,並嘗試更新外部鏈接。 – Tiggerito