5

我刚刚从 EE 1 升级到 EE 2,我正在努力应对一些变化。例如,EE 不再在其 url 上输出尾部斜杠这一事实使我的许多链接变得一团糟,我依赖于诸如 EE 生成的 url + 附加段之类的结构。考虑到我网站的大小和设置,查找和编辑所有我做过的地方将是一场小小的噩梦。有没有办法破解 EE 以恢复旧行为?

4

2 回答 2

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]
于 2012-11-05T22:40:39.807 回答
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

于 2012-11-03T22:09:33.810 回答