2012-11-03 57 views
5

我剛剛從EE 1升級到EE 2,我正在努力應對一些變化。例如,EE不再在它的url上輸出一個斜線,這使得我的很多鏈接亂七八糟,我依賴於EE生成的url +附加段等構造。考慮到我的網站的大小和設置,查找和編輯我已經完成的所有地方將是一場小小的噩夢。有什麼辦法可以破解EE來恢復舊的行爲嗎?在ExpressionEngine 2中獲取尾部斜線?

+0

你能解釋一下更多的「建築像EE生成的網址+附加段」嗎? – GDmac

+0

例如,我在使用標籤模塊時遇到了一個問題,我需要設置如下鏈接:「{path ='Characters/Season'}/{websafe_tag} /」。最初,我並不需要/之前的{websafe_tag},因爲URL的第一部分是用斜槓生成的。所以我在很多情況下都依賴於這個。 –

+1

看起來像{path =}和{url_title_path}依靠'$ this-> EE-> functions-> create_url($ path)',所以這可能是一個額外的斜槓入侵的地方。但是我會推薦一個搜索並在上面的黑客核心EE模板中進行替換。 – GDmac

回答

0

這裏有一個.htaccess解決方案,因爲這個問題,我在我的老EE網站中使用。

添加斜線

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule ^(.*)$ $1/ [L,R=301] 

來源:http://devot-ee.com/articles/item/simple-htaccess-for-expressionengine-sites

然而,由於它的存在,默認情況下,EE2,你可能想要做的對面,通過的.htaccess刪除尾部斜槓所以你不必手動添加/刪除/不管。如果你決定,這裏是代碼:

刪除尾隨斜線

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

來源:http://ee-spotlight.com/tips/a_standard_htaccess_file_with_expressionengine

+0

問題不在於URL的末尾,不幸的是,當我最終在URL中丟失了尾部的斜線時。我在之前的評論中發佈了一個例子,我希望說明我的意思。 .htaccess解決方案聽起來很不錯,可以將URL的末尾標準化爲無或不帶尾部的斜線,但似乎並不能解決URL中缺少的斜槓。 –

6

對於提到可能會導致某些形式的衝突,一些尾隨斜線加法。添加以下內容來檢查請求是否爲GET可能更安全。

# Add a trailing slash to paths without an extension 
RewriteCond %{THE_REQUEST} ^GET 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule ^(.*)$ $1/ [L,R=301] 
+0

我終於有時間來測試這個,我對這個實際工作有些迷惑。將它添加到我的.htaccess中,如果我點擊我的某個頁面上的鏈接,新頁面仍然會加載而沒有結尾斜槓。 –