2013-02-23 115 views
0

我需要我的网址mod_rewrite的漂亮网址不留

/crescenty/

重定向到

/crescenty/profile.php?player=

我用这个代码的mod_rewrite

RewriteEngine on 
RewriteRule ^([a-z]+)$ /crescenty/$1/ [NC,R] 
RewriteRule ^([a-z]+)/$ /crescenty/profile.php?player=$1 [NC,R] 

但有一个小问题,URL不留下来,它一直可以追溯到

/crescenty/profile.php?player=

我使用上述mod_rewrite的代码在最后一行为[NC,L]标志试过了,网址保持的方式我想它是

/crescenty/

但页面不显示正确(CSS似乎并不适用)

请帮助!

回答

1

这可能是因为你的链接被定义为相对于当前目录

当您重写URL时,它有一个比原始URL更低的级别(/ crescenty/vs /crescenty/name/)。这意味着资源将被查找相对于第二个目录级别,这当然不起作用。

改变你的资源URL加入了斜线到您的链接使用相对Web根网址。

例如变化< IMG HREF = “图像/ mying.jpg ”/>到< IMG HREF =“ /images/mying.jpg”/>(注意前导斜线)。

+0

但它似乎,如果我是这样做的,它的工作原理为休息,但那么现在我的主网页显示不出来的权利(127.0.0.1/crescenty/)。 – Crays 2013-03-10 11:40:53

+1

我建议你寻找到在调试网络资源的技术。例如Firefox的[萤火虫插件(https://getfirebug.com/)有一个“网”选项卡,在这里您可以看到页面上制造所有的HTTP请求。 Chrome和IE(我相信IE9)在开发者工具集中也有网络标签。否则,我可以推荐所谓的[提琴手]一个好的浏览器无关的工具(https://fiddler2.com/fiddler2/)。 – kjetilh 2013-03-10 13:32:15

+0

非常感谢你:) – Crays 2013-03-10 15:43:53