2

您好,我的网站上有一个锚点。通过调用我的网站,网址将是:

http://site.com/page.php

通过单击一个按钮,网址将显示一个我想隐藏的网址:

http://site.com/page.php#1

现在我发现我可以通过使用 mod_rewrite 工具来改变它。我尝试了这条规则但没有成功:

重写引擎开启

RewriteCond %{REQUEST_URI} ^(.*)\.html$
RewriteRule ^.*\.html$ %1.php [L]

用于将页面调用为 html 或 php 并隐藏#1在 .php 后面

RewriteRule ^(.*)$ ./php#1=php$1

如果有人可以就如何解决这个问题给我建议,我将不胜感激。多谢。

4

4 回答 4

1

您无法通过 mod_rewrite 实现此目的。

之后的 URL#不通过服务器。

如果您仍然想实现这一点,您可能需要考虑通过 JavaScript 来实现:

<a href="#checkthisout" onclick="scrollHere">Check this out</a>

JavaScript:

function scrollHere() {
    // Scroll to the anchor 
    //(you may need to look for some script to achieve this)

    return false; // to prevent URL overwriting
}

一个这样的脚本就是这个jQuery.scrollTo

于 2012-07-24T10:58:06.423 回答
0

你可以做这样的事情来删除#标签。

<a href="javascript:void(0);">Your text</a>.

所以当你写“javascript:void(0);”时 在标签的 href 属性中,就是这样。

于 2012-07-24T11:05:47.183 回答
0

HTML

<a href='page'>Home Page</a>

<a href='page/1'>Page 1</a>
<a href='page/2'>Page 2</a>
<a href='page/3'>Page 3</a>

重写为

RewriteRule ^$ page.php [L]
RewriteRule ^([a-z]+)/?([0-9]*)/?$ page.php?index=$2 [L]

并检查 php 中的索引

<?php 
if (isset($_GET['index']))
{
      $pageNo =$_GET['index'];
}
//based on page NO display contents 

?>

于 2012-07-24T11:07:03.010 回答
0

主题标签永远不会发送到服务器,因此您根本无法创建基于它的规则。

于 2012-07-24T10:57:55.423 回答