高分求助,少了还可以加!

owen1982_2004 2008-06-13 06:16:25
现碰到这样一个问题,网站设置了多币种,默认为USD,客户可以选择自己国家的币种,产生以下的URL地址:
http://www.epathchina.com/index.php?currency=GBP
http://www.epathchina.com/index.php?currency=AUD
http://www.epathchina.com/index.php?currency=EUR
http://www.epathchina.com/index.php?currency=HKD
http://www.epathchina.com/index.php?currency=RMB

这些地址都可以重写为 http://www.epathchina.com/index.php 吗?

有这样一个网站:http://www.chinavasion.com做到了,但这个是rewrite出来的吗?

对不起我是菜鸟,不太懂这个,所以问问题不是很专业,请高手指教!
...全文
257 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
owen1982_2004 2008-06-27
  • 打赏
  • 举报
回复
谢谢大家一起来讨论这个问题,在这里尤其要感谢 myvicy 和 chinmo 对我指导...
因为要考虑到网站其他页面的问题(很多页面也要切换币种,而且还带了其他的参数),最终我选择了 PHP 301重定向 来解决这个问题,现在网站运行正常,在GOOGLE里site:www.epathchina.com,之前收录的非常多的重复页面已经消失了,终于又解决了一个大问题...
fuguangchun 2008-06-24
  • 打赏
  • 举报
回复
我在一本书上看过类似的问题,好像要通过操作配置文件来实现的。
jxflll 2008-06-23
  • 打赏
  • 举报
回复
使用Cookie或者Session吧。可以实现。
happy002 2008-06-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dsclub 的回复:]
使用ReWrite技术取决于你个人意愿,只是为了方便Url。

但是这个?currency=GBP 的方式就是一个http地址的参数传递,然后逻辑判断或是查询数据库的结果。

如果是我个人来做这个功能,我只会在数据库内存放一个基准的单价,然后再一张表来存放汇率即可。
[/Quote]
youss 2008-06-21
  • 打赏
  • 举报
回复

这个其实很简单的,怎么大家都用这么复杂去思考

希望我的观点对楼主有用

http://www.epathchina.com/index.php?currency=GBP
http://www.epathchina.com/index.php?currency=AUD
http://www.epathchina.com/index.php?currency=EUR
http://www.epathchina.com/index.php?currency=HKD
http://www.epathchina.com/index.php?currency=RMB

这些地址都可以重写为 http://www.epathchina.com/index.php 吗?

可以的!1设一个COOKIE,让它保存currency信息

这样一来只要你
currency=GBP
currency=AUD
currency=EUR
currency=HKD
currency=RMB

COOKIE里面会自动保存currency信息

就是说http://www.epathchina.com/index.php?currency=RMB 后

不管怎么样
COOKIE里面会存在currency=RMB信息

而你要做的只是读出COOKIE里面currency信息

进而判断currency的值,然后显示相应的功能

这只是一个简单的操作,当然你用session也行。

不必用到什么无刷新技术的,尝试一下就行了
  • 打赏
  • 举报
回复
这个不是单纯正则实现
而是利用了JS
owen1982_2004 2008-06-20
  • 打赏
  • 举报
回复
自己再次顶起来...
owen1982_2004 2008-06-20
  • 打赏
  • 举报
回复
谢谢 叶秋枫 的提示

我以前有过一些了解,但现在非常明白了这个COOKIE的作用是体现在这里
URL为 http://www.epathchina.com/
切换币种为GBP
URL为 http://www.epathchina.com/index.php?currency=GBP

再次输入URL http://www.epathchina.com/ 页面显示币种为GBP

现在我要的效果是:
<li><form id="currencies" action="http://www.chinavasion.com/index.php" method="get"><p>Currencies:<select name="currency" id="currency" onchange="this.form.submit();" style="width: 60%" ><option value="USD" selected="selected">US Dollar</option><option value="EUR">Euro</option><option value="GBP">British Pound</option><option value="AUD">Australian Dollar</option><option value="CAD">Canadian Dollar</option><option value="CHF">Swiss Franc</option><option value="HKD">Hong Kong Dollar</option><option value="CNY">Chinese RMB</option><option value="NZD">New Zealand Dollar</option></select></p></form></li>

这里的传值方式是GET方式,那么产生的URL后面肯定要带参数,现在要在传值方式不变的情况下,隐藏或者去掉URL中的 index.php?currency=GBP

myvicy 在12楼和15楼的提示,我已经可以实现隐藏或者去掉URL中的 index.php?currency=GBP,但我们老板对这种实现方式不太容易接受(完美主义者),他更希望通过在.htaccess中的301重定向来实现,最好避免用301重定向。但除了301重定向,在不改变传值方式的情况下,我找不到其他方法... -_-!

附上我在.htaccess中的重定向代码

RewriteCond %{REQUEST_URI} ^.*index\.php$
RewriteCond %{QUERY_STRING} ^currency=([^&]+)$
RewriteRule ^index\.php$ http://www.epathchina.com/ [R=301,L]

这个只能实现
http://www.epathchina.com/index.php?currency=EUR 到 http://www.epathchina.com/?currency=EUR
参数没有完全去掉,而且这个是重写吧,苦闷啊...

做oscommerce二次开发... -_-! http://www.chinavasion.com 是我们的标杆...
以前我是做ERP, C/S方面开发的,做商业网站很痛苦...神啦!救救我吧...
  • 打赏
  • 举报
回复
AJAX+COOKIE 不利于搜索这倒是真的
  • 打赏
  • 举报
回复
呵呵,利于搜索这倒是真的
不过我觉得http://www.chinavasion.com这个网站所用的应该是
AJAX+COOKIE

myvicy 2008-06-20
  • 打赏
  • 举报
回复

那你就直接把凡是域名加默认页带参数的地址全部重写为域名,但这样不知道参数是否还能请求到,试试吧。

AJAX不利于搜索引擎,特别的象这样的首页。

提供的标杆站,可能就是用重写或者301吧。

用其他软件直接下载 该地址时,http://www.chinavasion.com/?currency=EUR
得到的仍旧是$的源代码,这里能得到些什么启示呢?
还有限制一下网速然后再去访问http://www.chinavasion.com/?currency=EUR 在没打开之前,单击停止,地址栏会跳到顶级域名而不是停在当前地址,这个又能有什么启示?
既然看不到人家的代码,就多方面去猜测吧.而且你老板又不知道人家的代码,他又怎么知道你做的就不是和他们的一样呢?
  • 打赏
  • 举报
回复
跟我们平常见到的没有两样
  • 打赏
  • 举报
回复
AJAX就可以显示你这个
owen1982_2004 2008-06-19
  • 打赏
  • 举报
回复
谢谢 myvicy 的指点,之前有考虑过通过PHP代码来实现,但所用的代码不是301重定向,因而页面打开速度不是很理想,采用301重定向代码后,打开速度非常不错...

但想问个其他的问题
PHP代码实现的301重定向与.htaccess中实现301重定向有什么区别吗?

我现在也在找这方面的资料,重定向如果运用得不好,被GOOGLE惩罚的话,后果不堪设想...
xchh1220 2008-06-19
  • 打赏
  • 举报
回复
GET 301 Redirect to http://www.chinavasion.com/ http://www.chinavasion.com/index.php?currency=USD
GET 200 text/html; charset=utf-8 http://www.chinavasion.com/
「已注销」 2008-06-19
  • 打赏
  • 举报
回复


以我所掌握的知识,实现这个只能用Cookie。

让我们来做一个简单的测试:

1、打开 http://www.chinavasion.com/

2、选择RMB。页面刷新一次,地址不变,却默认已经是RMB了。太神奇了?

3、按F5,刷新窗口。怎么刷新都是RMB,太神奇了?

4、清除Cookie,再刷新窗口……

祝楼主顺利。

@_@
owen1982_2004 2008-06-18
  • 打赏
  • 举报
回复
谢谢楼上的提醒...

以下是实现301重定向,我在.htaccess中添加的内容

Options +FollowSymLinks
RewriteEngine On
RewriteBase /epathchina.com/

RewriteCond %{REQUEST_URI} ^.*index\.php$
RewriteCond %{QUERY_STRING} ^currency=EUR$
RewriteRule ^index\.php$ http://192.168.1.110/epathchina.com/ [R=301,L]

这个只能实现
http://www.epathchina.com/index.php?currency=EUR 重定向 http://www.epathchina.com/?currency=EUR

现在我需要重定向到 http://www.epathchina.com/

我对这方面的了解不多,所以实现起来困难很多,而且时间上也不允许我去学习,所以只能在网上找资料,在这里也请这方面的高手能够指点一下!
fxs_2008 2008-06-18
  • 打赏
  • 举报
回复

<li><form id="currencies" action="http://www.chinavasion.com/index.php" method="get"><p>Currencies:<select name="currency" id="currency" onchange="this.form.submit();" style="width: 60%" ><option value="USD" selected="selected">US Dollar</option><option value="EUR">Euro</option><option value="GBP">British Pound</option><option value="AUD">Australian Dollar</option><option value="CAD">Canadian Dollar</option><option value="CHF">Swiss Franc</option><option value="HKD">Hong Kong Dollar</option><option value="CNY">Chinese RMB</option><option value="NZD">New Zealand Dollar</option></select></p></form></li>



这个不是重写,这个只是传给index.php传了值_即传给自身,后台根据这个get进行了处理

index.php里面会做判断和记录

比如:switch判断,或记录一个session值就行了,结算时检查一下是什么货币就可以了
另外,由index.php是雷默认的主页,所以http://www.chinavasion.com/即是http://www.chinavasion.com/index.php
myvicy 2008-06-18
  • 打赏
  • 举报
回复
你上面是重写,不是301吧.

PHP下的301转向代码

header(”HTTP/1.1 301 Moved Permanently”);
header(”Location: http://www.seo754.cn/articles/301/”);
参数应该仍旧可以请求的到的。
试试看。
owen1982_2004 2008-06-18
  • 打赏
  • 举报
回复
自已顶一下!
大家来帮帮忙啊,饭碗不保啊...
加载更多回复(12)

24,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧