Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已答复] 关于301重定向问题 请教!

[复制链接]
米易 发表于 2010-3-1 08:13:07 | 显示全部楼层 |阅读模式
我用的是windows主机

是利用301.PHP 做的301重定向


不过现在访问 http://xxx.com/space-mtag-tagid-168-view-list.html

却直接跳转到动态页 http://www.xxx.com/space.php?rewrite=mtag-tagid-168-view-list


而且访问 xxxx.com  也直接跳转到  www.xxx.com/index.php  而不是www.xxx.com

请教下  应该怎样解决此问题

uchome做301 哪种设置方法好一点  应该怎么设置 ?   谢谢!
玻璃屋女孩 发表于 2010-3-1 09:51:14 | 显示全部楼层
301.php这么写的?
回复

使用道具 举报

 楼主| 米易 发表于 2010-3-1 10:52:13 | 显示全部楼层
回复 2# 玻璃屋女孩


   
  1. <?php

  2. /**
  3. * 获得 ECSHOP 当前环境的 HTTP 协议方式
  4. *
  5. * @access public
  6. *
  7. * @return void
  8. */
  9. function http()
  10. {
  11. return (isset($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off')) ? 'https://' : 'http://';
  12. }

  13. /**
  14. * 取得当前的域名
  15. *
  16. * @access public
  17. *
  18. * @return string 当前的域名
  19. */
  20. function get_domain()
  21. {
  22. /* 协议 */
  23. $protocol = http();

  24. /* 域名或IP地址 */
  25. if (isset($_SERVER['HTTP_X_FORWARDED_HOST']))
  26. {
  27. $host = $_SERVER['HTTP_X_FORWARDED_HOST'];
  28. }
  29. elseif (isset($_SERVER['HTTP_HOST']))
  30. {
  31. $host = $_SERVER['HTTP_HOST'];
  32. }
  33. else
  34. {
  35. /* 端口 */
  36. if (isset($_SERVER['SERVER_PORT']))
  37. {
  38. $port = ':' . $_SERVER['SERVER_PORT'];

  39. if ((':80' == $port && 'http://' == $protocol) || (':443' == $port && 'https://' == $protocol))
  40. {
  41. $port = '';
  42. }
  43. }
  44. else
  45. {
  46. $port = '';
  47. }

  48. if (isset($_SERVER['SERVER_NAME']))
  49. {
  50. $host = $_SERVER['SERVER_NAME'] . $port;
  51. }
  52. elseif (isset($_SERVER['SERVER_ADDR']))
  53. {
  54. $host = $_SERVER['SERVER_ADDR'] . $port;
  55. }
  56. }

  57. return $protocol . $host;
  58. }

  59. $__domainName = "http://www.xxx.com"; //转发地址的域名

  60. if(get_domain() != $__domainName){
  61. Header("HTTP/1.1 301 Moved Permanently");
  62. Header("Location: ". $__domainName.$_SERVER['REQUEST_URI'] );
  63. exit();
  64. }

  65. ?>
复制代码
回复

使用道具 举报

一文天 发表于 2010-3-17 10:45:14 | 显示全部楼层
接楼主问题。uchome想要做301跳转,可以直接使用
  1. <?php
  2. showmessage('' , '你要的网址', '');
  3. ?>
复制代码
这里,第一个参数可以随意。 第三个参数必须留空
回复

使用道具 举报

lidq.jingwu 发表于 2010-3-17 10:53:09 | 显示全部楼层
先解决跳转到index.php文件的问题,在下面一句:
  1. Header("Location: ". $__domainName.$_SERVER['REQUEST_URI'] );
复制代码
中,如果要url中没有指定访问的文件,则服务器会指定一个默认访问文件,如index.html,index.php,这个是与服务器的配置有关的。
将.$_SERVER['REQUEST_URI'] ,用一个判断条件,是首页时不加,应该可以去掉的。

而第一个问题:

  1. 不过现在访问 http://xxx.com/space-mtag-tagid-168-view-list.html

  2. 却直接跳转到动态页 http://www.xxx.com/space.php?rewrite=mtag-tagid-168-view-list
复制代码
在上面给的程序中看不出来问题,可能是在程序中其他的函数中处理的吧。
回复

使用道具 举报

幸福摩天轮 发表于 2010-3-17 11:34:53 | 显示全部楼层
还是在服务器上配置 Rewrite 比较好。速度也快。
你的默认首页不是 index.php ,或者在服务器上做了一转发,才跳到 index.php 。
回复

使用道具 举报

miduday 发表于 2010-5-15 19:27:00 | 显示全部楼层
回复 6# 幸福摩天轮 的帖子


    我要把网站   路径 如  /?action-viewnews-itemid-700
                      /index.php?action-viewnews-itemid-700
                      /viewnews-700
  全部 换成    /portal-view-aid-700.html

.htaccess规则怎么写
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-6-3 21:31 , Processed in 0.100816 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表