2013-11-21 43 views
1

我爲我的博客創建了一個URL重寫,但所有鏈接(如css,javascript)都因此而中斷。重寫中斷鏈接

如果不手動繼續通過在每個鏈接之前添加/來重命名所有鏈接,是否有反正在某種程度上在.htaccess文件中重寫它?這裏是我有:

RewriteRule ^blog/([-a-zA-Z0-9]+)/?$ blog.php?title=$1 [L,NC] 

回答

1

通過在您的URL中添加額外的/,瀏覽器不知道相對URL的基礎是什麼,所以它在之前附加/blog/,每您在您的頁面內容中有相對URL鏈接。瀏覽器並不知道它實際上是從/blog.php獲取內容,而這些內容位於文檔根目錄中,而不是出現在(至少在瀏覽器中)出現的名爲「blog」的文件夾中。

除了更改所有鏈接,就可以基本URI添加到您的網頁的標題:

<base href="/" /> 

注意,在某些情況下(我覺得跟老IE瀏覽器),你需要完整URL:

<base href="http://your-site.com/" /> 
+0

哇!你每天都會學習新事物。多年來一直在研究html,從來沒有意識到有基地!今天幫助我解決了兩個問題,感謝好友繼續保持它。 :) –

0

隨着mod_rewrite,您可以檢查是否在文件上您的網址點:

RewriteCond %{REQUEST_FILENAME} -f 

或文件夾:

RewriteCond %{REQUEST_FILENAME} -d 

這裏的.htaccess你可能用途:

# if this url doesn't point on a file... 
RewriteCond %{REQUEST_FILENAME} !-f 
# ...and doesn't point on a folder... 
RewriteCond %{REQUEST_FILENAME} !-d 
# ...then check this rule 
RewriteRule ^blog/([-a-zA-Z0-9]+)/?$ blog.php?title=$1 [L,NC]