登录 注册

登录

问题 joomlagate.com/smf/想法

  • 影雪
  • 话题作者
  • 离线
  • COM_KUNENA_SAMPLEDATA_RANK2
  • COM_KUNENA_SAMPLEDATA_RANK2
  • 学海无涯苦作舟
更多
2009年12月07日 16:30 #1 作者: 影雪
影雪 创建了话题: joomlagate.com/smf/想法
www.joomlagate.com/smf/index.php 应该跳转回主目录http://www.joomlagate.com/component/option,com_smf/吧,差点以为有人用smf仿冒了joomlagate.com

路漫漫而修远兮,吾将上下而求索 [本人开发的免费网赚程序  www.shadowsnow.cn/GetForFree/index.asp]

登录 或者   注册一个会员帐号 来参与讨论

更多
2009年12月07日 19:35 #2 作者: Joomla之门
呵呵,影雪说的没错,如果有人去访问 SMF 安装目录,确实应该跳转回整合后的论坛页面。

曾经有人提供过一段代码来实现这个跳转,我测试时有一点小问题:跳转功能没有问题,只是一旦应该该跳转代码,则 SMF 的注册页面上的验证码图片就无法显示,原因是该图片的路径使用了未整合状态的 SMF 路径,由于跳转而导致图片路径错误就不显示了。

后来权衡了一下,我觉得验证码的重要性更大一些,于是就放弃了那个跳转代码。

如果有高手能解决这个问题,也不错啊。

如果解决不了,也没关系。等将来升级到 Joomla 1.5 平台之后,整合 SMF2 论坛时就不存在这个问题了 —— 可以在跳转的同时完美显示验证码图片。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

  • 影雪
  • 话题作者
  • 离线
  • COM_KUNENA_SAMPLEDATA_RANK2
  • COM_KUNENA_SAMPLEDATA_RANK2
  • 学海无涯苦作舟
更多
2009年12月07日 20:28 #3 作者: 影雪
我想,可不可以在http://www.joomlagate.com/smf/index.php
加上defined( '_JEXEC' ) or die( 'Direct Access to this location is not allowed.' );

路漫漫而修远兮,吾将上下而求索 [本人开发的免费网赚程序  www.shadowsnow.cn/GetForFree/index.asp]

登录 或者   注册一个会员帐号 来参与讨论

更多
2009年12月08日 09:43 #4 作者: Joomla之门
我没有测试你的方法,因为我觉得 _JEXEC 是 Joomla 专用的代码,直接插入到 SMF 的 index.php 文件中,并且直接访问 SMF 安装目录,已经绕过了 Joomla 的验证机制,所以不可能生效。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

  • 影雪
  • 话题作者
  • 离线
  • COM_KUNENA_SAMPLEDATA_RANK2
  • COM_KUNENA_SAMPLEDATA_RANK2
  • 学海无涯苦作舟
更多
2009年12月08日 10:11 - 2009年12月08日 10:16 #5 作者: 影雪
经测试过defined( '_JEXEC' ) or die( 'Direct Access to this location is not allowed.' );可以起到限制访问作用,白老不妨将die语句改为 header()语句实行跳转,跳转后一切正常(通过插件访问smf时实质上已经访问了index.php,也就是定义了_JEXEC常量,所以可以起到作用.)

路漫漫而修远兮,吾将上下而求索 [本人开发的免费网赚程序  www.shadowsnow.cn/GetForFree/index.asp]

登录 或者   注册一个会员帐号 来参与讨论

更多
2009年12月08日 10:19 #6 作者: DeadFire
这个问题是得解决解决呢,因为很多从搜索引擎来的地址就是到smf的目录的这个地址的,而我这里,一旦到这个地址,因为cookies的记录,完后我的界面就被改成smf的样式了。

新用Joomla建设的公司网站: 蔚州大酒店

登录 或者   注册一个会员帐号 来参与讨论

更多
2009年12月08日 13:05 #7 作者: Joomla之门

将die语句改为 header()语句实行跳转


具体怎么改?请给出最终的代码,我直接复制、粘贴就行。我不懂编程的,谢谢!

你给我代码,我下午插入到 index.php 文件试试看。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2009年12月08日 15:31 #8 作者: Joomla之门

很多从搜索引擎来的地址就是到smf的目录的这个地址的


我在 Joomla 的 robots.txt 里面已经禁止了对 /smf 目录的访问,为什么搜索引擎还是找到那里去了?你平时用什么搜索引擎?为什么不遵守 robots.txt 的规则呢?

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

  • 影雪
  • 话题作者
  • 离线
  • COM_KUNENA_SAMPLEDATA_RANK2
  • COM_KUNENA_SAMPLEDATA_RANK2
  • 学海无涯苦作舟
更多
2009年12月08日 18:07 - 2009年12月08日 18:14 #9 作者: 影雪
robots.txt 很多垃圾搜索引擎,如soso是不认的, 还有/smf我是在百度搜出来的..

对策:
1. 在.htaccess里增加上deny的ip
2. 将/smf/Themes/classic/index.template.php里面
 
<meta name="robots" content="noindex" />
 

改为
 
<meta name="robots" content="none" />
 
 

或者
 
 
<meta name="robots" content="noindex,nofollow" />

路漫漫而修远兮,吾将上下而求索 [本人开发的免费网赚程序  www.shadowsnow.cn/GetForFree/index.asp]

登录 或者   注册一个会员帐号 来参与讨论

  • 影雪
  • 话题作者
  • 离线
  • COM_KUNENA_SAMPLEDATA_RANK2
  • COM_KUNENA_SAMPLEDATA_RANK2
  • 学海无涯苦作舟
更多
2009年12月08日 18:09 - 2009年12月08日 18:31 #10 作者: 影雪

在/smf/index.php的php标记里面添加上
 
defined( '_JEXEC' ) or header('Location: http://www.joomlagate.com/component/option,com_smf/');
 

若果不行的话,可以这样:
 
defined( '_JEXEC' ) or exit("<script>location.href='http://www.joomlagate.com/component/option,com_smf/';</script>");
 
 
 


路漫漫而修远兮,吾将上下而求索 [本人开发的免费网赚程序  www.shadowsnow.cn/GetForFree/index.asp]

登录 或者   注册一个会员帐号 来参与讨论

  • 影雪
  • 话题作者
  • 离线
  • COM_KUNENA_SAMPLEDATA_RANK2
  • COM_KUNENA_SAMPLEDATA_RANK2
  • 学海无涯苦作舟
更多
2009年12月08日 18:12 #11 作者: 影雪
meta 标签的 robots 属性
<meta name="robots" content="index,follow" />
<meta name="robots" content="noindex,follow" />
<meta name="robots" content="index,nofollow" />
<meta name="robots" content="noindex,nofollow" />
robots 属性一共有以上4种写法
  index 表示允许机器人抓取本页
  follow 表示允许机器人沿着页面链接继续抓取
  noindex 表示不允许机器人抓取本页
  nofollow 表示不允许机器人沿着页面链接继续抓取

<meta name="robots" content="index,follow" />
等价于
  <meta name="robots" content="all" />

<meta name="robots" content="noindex,nofollow" />
等价于
  <meta name="robots" content="none" />

另注:Google 自增了属性值 archive(noarchive),用来限制Google是否保留网页快照。
  <meta name="robots" content="all,noarchive" />


路漫漫而修远兮,吾将上下而求索 [本人开发的免费网赚程序  www.shadowsnow.cn/GetForFree/index.asp]

登录 或者   注册一个会员帐号 来参与讨论

更多
2009年12月08日 20:24 #12 作者: Joomla之门
回复 #9 里面的两个代码刚才都测试了一下,在禁止直接访问 smf 安装目录这一点上,两者都有效。

不同的是:第一种代码,在访问 SMF 目录时可自动跳转向论坛首页,但是打开的页面却显示了源代码,没有看到正常的论坛首页;第二种代码也能跳转向论坛首页的 URL,但是一直没真正打开页面,我回到另一个浏览器中前面已经打开的页面上,尝试去访问正常状态(整合)下的“未读帖”页面,结果还是跳转向论坛首页,同时又不能真正打开首页!

也就是说:上述两种代码都无效。第二种更严重,连整合状态下的链接都干扰了。

算了,这个 SMF 跳转问题很多高手都研究过,我觉得不是你想象那么简单。我暂时还能忍受。等将来升级到 Joomla 1.5 后这个问题自然就不存在了。

感谢 影雪 的关注!

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

  • 影雪
  • 话题作者
  • 离线
  • COM_KUNENA_SAMPLEDATA_RANK2
  • COM_KUNENA_SAMPLEDATA_RANK2
  • 学海无涯苦作舟
更多
2009年12月08日 21:15 - 2009年12月08日 21:25 #13 作者: 影雪
显示了源码,可能是老白把代码发错了地方,没有放在<?php 标签后面.

另外是我太粗心了,漏了填上itemid了,导致没有清除两边的模块, 老白再试试吧,不行就算了..(搭建论坛时间不长, 很多东西没有一一试过,经验是慢慢积累的,也急不来)
 
defined( '_JEXEC' ) or header('Location: http://www.joomlagate.com/component/option,com_smf/Itemid,31/');
 

 
defined( '_JEXEC' ) or exit("<script>location.href='http://www.joomlagate.com/component/option,com_smf/Itemid,31/';</script>");
 
 

路漫漫而修远兮,吾将上下而求索 [本人开发的免费网赚程序  www.shadowsnow.cn/GetForFree/index.asp]

登录 或者   注册一个会员帐号 来参与讨论

  • 影雪
  • 话题作者
  • 离线
  • COM_KUNENA_SAMPLEDATA_RANK2
  • COM_KUNENA_SAMPLEDATA_RANK2
  • 学海无涯苦作舟
更多
2009年12月08日 21:46 - 2009年12月08日 22:08 #14 作者: 影雪
装了JFUSION插件,整合之后看了看smf2源码,发现思路基本一样:
 
//JFUSION REDIRECT START
//SET SOME VARS
$joomla_url = '/';
$joomla_itemid = ;
 
if(!defined('_JEXEC') && strpos($_SERVER['QUERY_STRING'], 'dlattach') === false && strpos($_SERVER['QUERY_STRING'], 'verificationcode') === false)
{
	$pattern = '#action=(login|logout)#';
	if ( !preg_match( $pattern , $_SERVER['QUERY_STRING'] ) ) {
		$file = $_SERVER["SCRIPT_NAME"];
		$break = explode('/', $file);
		$pfile = $break[count($break) - 1];
		$jfusion_url = $joomla_url . 'index.php?option=com_jfusion&Itemid=' . $joomla_itemid . '&jfile='.$pfile. '&' . $_SERVER['QUERY_STRING'];
		header('Location: ' . $jfusion_url);
		exit;
	}
}
 
//JFUSION REDIRECT END
 


受其启发,稍作修改:
 
if(!defined('_JEXEC') && strpos($_SERVER['QUERY_STRING'], 'dlattach') === false && strpos($_SERVER['QUERY_STRING'], 'verificationcode') === false)
{
	$pattern = '#action=(login|logout)#';
	if ( !preg_match( $pattern , $_SERVER['QUERY_STRING'] ) ) {
		$jfusion_url = "http://www.joomlagate.com/component/option,com_smf/Itemid,31/";
		header('Location: ' . $jfusion_url);
		exit;
	}
}
 

路漫漫而修远兮,吾将上下而求索 [本人开发的免费网赚程序  www.shadowsnow.cn/GetForFree/index.asp]

登录 或者   注册一个会员帐号 来参与讨论