2015-01-06 161 views
-1

我想爲我的一個項目做一個友好的URL。目前我的網址是http://example.com/profile.php?user=someprofile,我想讓它成爲http://example.com/someprofile。我嘗試了下面的htaccess,但我的CSS和圖像文件沒有加載。.htaccess爲友好的URL

RewriteEngine on 

RewriteCond $1 !^(profile\.php|assets|editor|css|js|scripts|images|img|media|xml|user_guide|robots\.txt|favicon\.ico) 
RewriteRule ^g/([^/\.]+)/?$ profile.php?user=$1 [L] 
<Files profile> 
    ForceType application/x-httpd-php 
</Files> 

我該如何做到這一點?

+0

爲什麼你的模式中有'^ g /'? – anubhava

+0

您的文件指令無關緊要。你沒有處理文件,你正在處理虛擬網址。 –

+0

可能與http://stackoverflow.com/questions/27744603/css-js-and-images-do-not-display-with-pretty-url – Sumurai8

回答

0

這聽起來像是相對/絕對URL的問題。由於您在網址的開頭添加了/g/,因此更改了相對URI基礎,因此所有相關鏈接都將被打破。您需要更改您的鏈接,絕對鏈接或添加相對URI基地到您的網頁的標題:

<base href="/" /> 
0

有你的.htaccess就象這樣:

RewriteEngine on 

# If the request is not for a valid directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# If the request is not for a valid file 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ profile.php?user=$1 [L,QSA] 

CSS/JS /圖片路徑問題: 最好在你的css,js,images文件中使用絕對路徑而不是相對路徑。這意味着您必須確保這些文件的路徑始於http://或斜槓/

否則你可以嘗試在你的網頁的HTML的<head>部分添加此:<base href="/" />讓每一個相對URL是從URL解析,而不是當前頁面的URL。