喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [问题] 一个Rewrite规则产生的当前相对地址无法访问问题  
 
7u5
新手上路
Rank: 1



UID 116620
精华 0
积分 10
帖子 6
金钱 10 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-3-28
状态 离线
一个Rewrite规则产生的当前相对地址无法访问问题

我把detial.php?id=xxx用Rewrite规则做了伪静态优化。代码如下:

   
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/content/view/([0-9]+)/?(([^0-9]+)/?)? /detail\.php\?id=$1
RewriteRule ^/content/view/([a-z]+)/([a-z]+)/([^/]+) /$1/$2/$3
RewriteRule ^/content/view/(([a-z\.\?/]*)(id=[0-9]+)?) /$1
也即实现 deital?id=222 转为 content/view/222/ 格式以便搜索引擎收录,
但是产生一个问题:

1。原来文章内容里出现相对路径的超链接,会有问题:
比如 <a href=''test/1.htm">test</a>,超链接地址会变成 http://www.xxxx.com/content/view/222/test/1.htm
图片地址也是一样。
导致大量链接失效,同时图片无法访问。

请问Rewrite规则我是否有参数漏了?还是哪儿有误的地方。

2。因为考虑到效率问题不能使用 .htaccess目录级来实现。

此问题困扰我很久了,看了很多资料但仍然无效,诚心求教。

尝试过重新写Rewrite规则

RewriteRule ^/content/view/([0-9]+)/(.*) /$1

但容易与原来的规则集起冲突,有时候会造成死循环

[ 本帖最后由 7u5 于 2008-3-28 01:12 PM 编辑 ]
2008-3-28 01:10 PM#1
查看资料  发短消息  顶部
 
7u5
新手上路
Rank: 1



UID 116620
精华 0
积分 10
帖子 6
金钱 10 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2008-3-28
状态 离线
[推荐阅读] 发现一新东西,共享一下
已解决= =!
把自己问题表达出来之后,再去查资料,果然很见效。。。

这里把方法贴出来:

在每个脚本的 <head></head>之间
用 <base href="">来指定当前页面所有相对路径的起始位置,比如 你的起始位置默认为网站根目录则直接用
<base href="http://www.xxxx.com">
/*----------------------------------------------------------------------------------------------------------------------------*/

除此之外,还是想请教一下,用httpd.conf,如果实现类似于.htaccess的RewriteBase的功能?
2008-3-28 01:34 PM#2
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.021698 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP