Mod重写页面锚点

时间:2010-12-17 00:41:42

标签: php mod-rewrite anchor

过去两个小时我一直试图解决这个问题。我已经尝试过谷歌上提到的所有解决方案,但没有任何运气。

让我们从问题开始吧。我正在尝试使用这个插件: http://www.gethifi.com/blog/a-jquery-plugin-to-create-an-interactive-filterable-portfolio-like-ours

在我的网站上。问题是这个插件使用的是Anchor标签。没有它,它似乎不起作用。 好吧,我正在尝试使用我正在处理的网站上的用户友好URL。所以锚点不起作用。

这是我的.htaccess文件:

RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)\.html$ /mysite/category.php?cat=$1 [L]
RewriteRule ^([^/]*)/([^/]*)\.html$ /mysite/category.php?cat=$1&lang=$2 [L]

没什么好看的,只是对类别和语言进行了一些重写。似乎唯一有效的是:

RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)\.html$ /mysite/category.php?cat=$1 [L]
RewriteRule ^([^/]*)/([^/]*)\.html$ /mysite/category.php?cat=$1&lang=$2 [NE,R,L]

但是当我使用它时,我的用户友好URL也消失了。相反,我看到:category.php?cat = ....

我不知道这是否重要,但我使用<base href="">指向我正在处理的主持人。

提前感谢任何想法。

2 个答案:

答案 0 :(得分:1)

Anchor #是一个URL片段,apache会忽略而不能满足重写。

使用客户端方法是唯一的解决方法。

或者您可以尝试PHP parse_url - PHP_URL_FRAGMENT

答案 1 :(得分:0)

无法找到让插件与mod_rewrite结合使用的方法,所以我放弃了并使用了另一个插件。它似乎有效,因为它不需要锚点来使用。

和平。

编辑:

这是我现在正在使用的代码:

        $(document).ready(function() {

            $('.menu li a').click(function() {


                $('.menu li').removeClass('selected');
                $(this).parent('li').addClass('selected');

                thisItem    = $(this).attr('rel');

                if(thisItem != "all") {

                    $('.item li[rel='+thisItem+']').stop()
                                                            .animate({'width' : '110px', 
                                                                         'opacity' : 1, 
                                                                         'marginRight' : '.5em', 
                                                                         'marginLeft' : '.5em'
                                                                        });

                    $('.item li[rel!='+thisItem+']').stop()
                                                            .animate({'width' : 0, 
                                                                         'opacity' : 0,
                                                                         'marginRight' : 0, 
                                                                         'marginLeft' : 0
                                                                        });
                } else {

                    $('.item li').stop()
                                    .animate({'opacity' : 1, 
                                                 'width' : '110px', 
                                                 'marginRight' : '.5em', 
                                                 'marginLeft' : '.5em'
                                                });
                }
            })

            $('.item li img').animate({'opacity' : 0.5}).hover(function() {
                $(this).animate({'opacity' : 1});
            }, function() {
                $(this).animate({'opacity' : 0.5});
            });

        });

我刚将它从列表更改为div。