2012-08-31 225 views
1

可能重複:
htaccess rewrite breaks relative paths漂亮的URL與htaccess的

我希望有人能幫助我。我正嘗試將我的網站設置爲使用漂亮的網址。

我現在有哪些隱藏包含我所有的php文件我的子域文件夾,以及我從http協議更改爲https,反之亦然命令幾個htaccess的命令。漂亮的網址被證明是困難的。我想完全通過htaccess而不是php。我設法寫了一個可以工作的命令,但是之後我的CSS或JavaScript沒有工作。

# Redirect from website.com to www.website.com 
RewriteCond %{HTTP_HOST} ^website.com [NC] 
RewriteCond %{HTTP_HOST} !^www [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

# redirect url to www 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /defaultfolder/([^\ ]+)\ HTTP/ 
RewriteRule ^(.*)$ defaultfolder/error.php [L] 

#this section hides the defaultfolder, tried to modify this code here to make friendly urls. 
RewriteCond %{HTTP_HOST} www.website.com 
RewriteCond %{REQUEST_URI} !defaultfolder/ 
RewriteCond %{REQUEST_URI} !images/ 
RewriteRule ^(.*)\/$ defaultfolder/$1\.php [L] 

#https redirect 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} (/defaultfolder/)(login|securepages|pages)\.php 
RewriteRule ^defaultfolder/(.*)$ https://www.website.com/$1 [R,L] 

#http redirect 
RewriteCond %{SERVER_PORT} 443 
RewriteCond %{REQUEST_URI} (/defaultfolder/)(index|nonsecure pages)\.php 
RewriteRule ^defaultfolder/(.*)$ http://www.website.com/$1 [R,L] 
+0

(用更翔實的問題的標題,你可能會雖然找到更確切的重複) – mario

回答

1

非我的CSS或JavaScript的工作之後。

這可能是一個相對/絕對路徑的問題。當您更改URL的路徑時,相關鏈接將因基礎已更改而中斷。您可以添加一對夫婦的規則指向了對CSS/JS請求到正確的地方,或者嘗試添加使用<base>標籤在你的網頁的標題正確的基礎。例如:

<base href="/"> 

否則,您可能不得不重寫css和js得到解決的方式。例如說,你有/css/所有的風格和所有的腳本在/js/

RewriteCond %{REQUEST_URI} !^/css/ 
RewriteRule ^(.*\.css)$ /css/$1 [L] 

RewriteCond %{REQUEST_URI} !^/js/ 
RewriteRule ^(.*\.js)$ /js/$1 [L] 

<head><link rel="stylesheet" type="text/css" href="css/main.css" media="all"/> 

,這是主要的子文件夾

因此,這將意味着你需要這樣一個規則:

RewriteCond %{REQUEST_URI} !/defaultfolder/ 
RewriteRule ^(css|js)/(.*)\.(css|js)$ defaultfolder/%1/%2.%3 [L] 
+0

我建議對的''使用 - 在我的經驗,而這似乎是一個捷徑/幫手起初,我不止一次遭受其後果。我記得Joomla團隊希望擺脫他們的''標籤,但是如果不打破向後兼容性以及其他一些事情,很難做到這一點。所以,至少在使用它時要小心。 –

+0

謝謝,是否有寫在一個單一的命令集能夠隱藏我的默認子域以及有漂亮的網址? – JamesBondInBlack

+0

@JamesBondInBlack什麼是你網頁中的css/js鏈接的例子,它應該在你的網站上? –