2017-08-12 141 views
0

我想使用漂亮的鏈接與我的網站,但我有一個問題,路徑的CSS和JS文件。
修復路徑與漂亮的網址?

多數民衆贊成我的.htaccess文件中寫道:

RewriteEngine on 
RewriteRule ^register register.php [NC,L] 
RewriteRule ^login login.php [NC,L] 
RewriteRule ^settings settings.php [NC,L] 
RewriteRule ^logout logout.php [NC,L] 
RewriteRule ^profile/([0-9a-zA-Z]+)$ profile.php?u=$1 [NC,L] 

當我嘗試與變量
例如訪問profile.php這裏的問題出現:http://example.com/xxxx/profile/ashraf
在這裏,這將考慮配置文件作爲主要文件夾導入不是文件夾的樣式文件,它只是profile.php

謝謝

+1

你的問題不清楚。你期望發生什麼?你給'/ xxxx/profile/ashraf'的路徑不符合你的任何規則(在最後一條規則中,路徑以'profile'開頭,而不是'xxxx')。請特別指出您嘗試訪問的CSS的路徑,以及您得到的任何錯誤。 – BeetleJuice

+0

xxxx是主要路徑和配置文件是一個php文件, 我不工作的根文件我工作在xxx文件夾和htaccess文件裏面它 –

+0

樣式路徑是xxxx/style –

回答

1

我想您可以將規則

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

之前添加此基本上,這是什麼(在許多CMS系統常見)說,如果是不是一個真正的文件!-f,或者一個真正的目錄!-d然後繼續。因此,如果該文件實際存在,如css文件,它將不會通過該條件,並且不會被重寫。

所以,我要說把它放到這裏

RewriteEngine on 
## insert here ## 
RewriteRule ^register register.php [NC,L] 

您可能必須每條規則之前把它,我不是說肯定的,因爲我沒有做了一大堆與.htaccess像5年。基本上,當我學會了如何使用URI而不是URL並通過index.php和路由器腳本路由所有內容。

這幾天我的.htaccess文件的程度(僅供參考我的記憶缺乏的解釋),它從字面上不會改變。這就是建設一個路由器,並使用URI

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

這個答案我也有我怎麼叫什麼URI方法效果相當不錯(如果我說的話)解釋的一個最大的優點。

How to change the name of the directory in url in php using htaccess?

這裏是另一個答案,我就這個話題,概述瞭如何構建一個基本的路由器

Oop php front controller issue

反正希望幫助做。

0

瀏覽器無法知道URL中的路徑是否是真實目錄或只是重寫規則中使用的部分。當它向Web服務器發送獲取CSS的請求時,瀏覽器必須將其轉換爲絕對路徑,並假定當前頁面位於目錄路徑中。

換句話說,在HTML頁面中,總是使用絕對網址:<link href="/xxxx/style/mycss.css" ...>

+0

謝謝,但我什至可以使鏈接動態,這意味着它可以在任何地方工作,而無需編輯樣式路徑 –

+0

這是不正確的它可以知道。 – ArtisticPhoenix

0

的profile.php規則後,將這個。這將取出額外的'資料'。

RewriteRule ^profile/(.*)$ $1 [L] 

或者使用長路徑CSS文件:

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

無論是一個人應該工作。