2012-11-03 62 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中,如果我点击我的某个页面上的链接,新页面仍然会加载而没有结尾斜杠。 –