页:
[1]
|
一个Rewrite规则产生的当前相对地址无法访问问题
我把detial.php?id=xxx用Rewrite规则做了伪静态优化。代码如下:
[code]
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
[/code]
也即实现 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
但容易与原来的规则集起冲突,有时候会造成死循环
[[i] 本帖最后由 7u5 于 2008-3-28 01:12 PM 编辑 [/i]] |
|
已解决= =!
把自己问题表达出来之后,再去查资料,果然很见效。。。
这里把方法贴出来:
在每个脚本的 <head></head>之间
用 <base href="">来指定当前页面所有相对路径的起始位置,比如 你的起始位置默认为网站根目录则直接用
<base href="http://www.xxxx.com">
/*----------------------------------------------------------------------------------------------------------------------------*/
除此之外,还是想请教一下,用httpd.conf,如果实现类似于.htaccess的RewriteBase的功能? |
Powered by Discuz! Archiver 6.1.0
© 2001-2006 Comsenz Inc.
Processed in 0.00608 second(s), 2 queries |