2013-03-25 51 views
1

我想弄清楚如何從URL中刪除文件擴展名。 我想更改www.website.com/index.php以顯示www.website.com/index。來自URL的脫機文件擴展名

我一直在努力得到這個工作

RewriteRule ^about$ about.php [L] 

當我在一個htaccess文件插入此代碼它是所有扭曲我的網站,其實它看起來像它消除了CSS,怪異..

我在wamp服務器上本地運行我的網站。

任何關於如何讓這個工作的建議?

+1

重複的[隱藏頁面擴展(像StackOverflow上)的根.htacess(http://stackoverflow.com/q/1759420/209139)或[我如何使用.htaccess隱藏.php網址擴展名?](http://stackoverflow.com/q/10028025/209139)。 – TRiG 2013-03-25 11:06:24

+0

我試過這段代碼,而且我還沒有收到錯誤,但擴展名仍然存在。 – 2013-03-25 11:16:43

+1

那些'.htaccess'腳本將使頁面*和*和*一起工作,不帶*文件擴展名。他們不會將帶有擴展名的頁面重定向到沒有的頁面。將鏈接更改爲不包含文件擴展名,並且所有內容都應該有效。 – TRiG 2013-03-25 11:24:43

回答

3

這很可能是因爲您使用相對路徑來鏈接樣式表。例如:

<link rel="stylesheet" type="text/css" href="css/style.css" /> 

當您訪問http://example.com/about/,Web瀏覽器正在尋找在樣式表:http://example.com/about/css/style.css

爲了解決這個問題,使用絕對路徑,它從你的Web根目錄開始:

<link rel="stylesheet" type="text/css" href="/css/style.css" /> 

注意:您可能要使用絕對路徑,爲您的影像。

+1

答案發布後不完全改變你的問題,但是,內部服務器錯誤問題可能是由Apache沒有啓用mod_rewrite引起的。你能證實它是? – 2013-03-25 11:11:45

+0

風格工作正常,然後我得到一個服務器錯誤。更改問題是刪除我沒有了的問題。我會檢查是否是。 – 2013-03-25 11:19:13

+0

我將 #LoadModule rewrite_module modules/mod_rewrite.so 複製到LoadModule rewrite_module modules/mod_rewrite.so並重置wamp。仍然沒有:/ – 2013-03-25 11:22:19

0
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

嘗試添加這些行到您的網站