2013-10-26 115 views
1

所以我試圖把我的網站從這個:如何從URL中刪除子目錄?

http://profe5.com/Profe5-Web/public_html/login.html

要這樣:

http://profe5.com/login

我一直在努力做的這個,但每當我運行它,我得到404錯誤!

這是我的htaccess:

DirectoryIndex Profe5-Web 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{HTTP_HOST} !^profe5\.com$ [NC] 
    RewriteRule ^(.*)$ http://profe5.com/$1 [R=301,L] 
    RewriteCond %{SCRIPT_FILENAME} !-d 
    RewriteRule ^([^\.]+)$ $1.html [R=301,L] 
    RewriteRule ^Profe5-Web/public_html/(.*)$ $1 [R=301,L] 

這將是如此真棒,如果你們能幫助我! 非常感謝!

回答

1

這應該是你的完整的.htaccess:

DirectoryIndex Profe5-Web 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^profe5\.com$ [NC] 
RewriteRule ^(.*)$ http://profe5.com/$1 [R=301,L] 

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+Profe5-Web/public_html/([^.]+)\.html [NC] 
RewriteRule^%1? [R=301,L] 

# internal forward from pretty URL to actual one 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^([^/.]+)/?$ Profe5-Web/public_html/$1.html [L,QSA] 
+0

這個工程差不多了吧,這個唯一的問題是,現在的鏈接的文件不會加載。例如沒有找到css文件和JS文件! –

+0

對於css,js不加載的問題,解決方法很簡單,只需在你的css,js,images文件中使用絕對路徑而不是相對路徑。這意味着你必須確保這些文件的路徑以'http://'或斜槓'/'開始。 – anubhava

0

你可能會考慮通過虛擬主機來做到這一點;與您的託管公司檢查有關設置它

0

如果你想/login映射到Profe5-Web/public_html/login.html - 試試這個:

RewriteRule ^([^.]+)$ Profe5-Web/public_html/$1.html [R=301,L] 

你已經擁有的重寫規則,RewriteRule ^([^\.]+)$ $1.html [R=301,L]將映射到/login/login.html,這似乎並不做你需要的東西。