2014-02-24 47 views
0

我目前在默認情況下在mod_rewrite的服務上託管了一個站點。我編輯.htaccess與URL寫入問題

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 

但它只允許使用「site.com/pagename」訪問網站。我希望它將網址改寫爲「site.com/pagename」而不是「site.com/pagename.html」。

我試過一百萬種不同的代碼,它不會重寫網址來排除.html。 HTML代碼具有相互鏈接的頁面,因爲

<a href="index.html">Text</a> 

如果這樣做有所不同。

在此先感謝您的幫助。

回答

0
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+html?\ HTTP 
RewriteRule (.+)\.html?$ $1 [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 
+0

非常感謝。完美的作品。但是,有沒有辦法將「site.com/index」減少到「site.com」? – user3258704

+0

未經測試,但應在上述之前插入:'RewriteRule^index \ .html $/[R = 301,L]'然後'RewriteRule ^(。*)/ index \ .html $/$ 1/[R = 301,L ]' – JBES

+0

請參閱http://meta.stackexchange.com/a/148274/148873 – cHao