2017-03-06 51 views
0

我有一個簡單的HTML項目名爲「哥們」文件夾中坐在一個託管帳戶,其完整的URL看起來像這樣http://www.example.com/buddies/的.htaccess重定向,CSS /圖像不再加載

我試圖重新 - 把URL寫成指向這樣的PHP文件;

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ((?:css|images|js)/.*)$ /$1 [L] 

# About Us 
RewriteRule ^about_us/what_we_do/?$ about-what-we-do.php [NC,L] 
RewriteRule ^about_us/mission/?$ about-our-mission.php [NC,L] 
RewriteRule ^about_us/team/?$ about-team.php [NC,L] 
RewriteRule ^about_us/what_next/?$ about-what-next.php [NC,L] 

# Classes 
RewriteRule ^classes/learn/?$ classes-learn.php [NC,L] 
RewriteRule ^classes/1to1/?$ classes-one-to-one.php [NC,L] 
RewriteRule ^classes/swim_fit/?$ class-swim-fit.php [NC,L] 

# Information 
RewriteRule ^information/timetable/?$ info-timetable.php [NC,L] 
RewriteRule ^information/contact/?$ info-contact.php [NC,L] 
RewriteRule ^information/location/?$ info-locations.php [NC,L] 

這在重定向到URL到正確的PHP文件的偉大工程,但在這樣做它的打破了鏈接到所有圖像和CSS文件。我明白爲什麼它這樣做,css和images文件夾不存在於路徑中'about_us/what_we_do /'

如果這是在域的根目錄下運行的,我只是簡單地用'/'來代替所有圖像/ css文件的前面,即'/css/style.css',而不是它們當前如何引用'css/style.css'。

有人可以提出一種方法,我仍然可以從文件夾的'CSS','圖像'和'JS'服務器的CSS,圖像和JavaScript?沒有我必須在每個css /圖像引用上預先設置'好友'文件夾。

編輯:我引用這樣的樣式表;

<!-- Stylesheet --> 
<link rel="stylesheet" type="text/css" href="css/style.css"> 
<link rel="stylesheet" type="text/css" href="css/style-768.css"> 
<link rel="stylesheet" type="text/css" href="css/style-992.css"> 

回答

1

如果所有的CSS文件都在目錄/css,你可以重寫每到這個目錄

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (css/.*\.css)$ /$1 [L] 

RewriteCond有避免重寫循環,如果請求是針對/css/...

圖片和Javascript文件類似。你甚至可以將所有進入一個規則,如果你只是看看目錄

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ((?:css|images|js)/.*)$ /$1 [L] 

這看起來開始與任一css/images/js/的任何請求。


如果CSS文件不在%{DOCUMENT_ROOT}/css,但%{DOCUMENT_ROOT}/buddies/css,目標必須進行相應的前綴,例如

RewriteRule ((?:css|images|js)/.*)$ /buddies/$1 [L] 
+0

我更喜歡第二種方法,但可悲的是,它仍然無法正常工作。我更新了原始問題中的代碼。 – SheppardDigital

+0

CSS文件位於何處?它是'/ css/style.css'還是'/ buddies/css/style.css'? –

+0

他們位於/buddies/css/style.css – SheppardDigital

1

使用<base href="http://www.example.com/">所以它會將您的外部文件重定向到該目錄。

+0

該解決方案確實有效,但是我希望避免向每個頁面添加代碼,並且如果我可以輕鬆維護,可以在單個文件(.htaccess)中進行管理。 – SheppardDigital