2013-01-31 41 views
0

不知道这是可能的,但想知道如果htaccess具有完美的一招......我可以在htaccess中修改锚标签h​​ref吗?

说我有这样的锚标记的href -

<a href="http://example.com/index.php?id=12345">Click here</a> 

我已经改变使用mod_rewrite的URL结构,但希望知道我是否可以使用htaccess在href中隐藏实际的URL。

即,当用户将鼠标悬停在锚标签上时,浏览器在底部显示http://example.com/index.php?id=12345。我希望浏览器显示的是http://example.com/index/12345,而不是在我的所有页面上手动更改它。

感谢您的帮助!

+0

不,我不认为'htaccess'可以做那么多。如果您不想手动执行此操作,则可以在所有页面上使用小型JS函数。 – hjpotter92

+0

我不这么认为,如果/index.php?id=12345实际上是在HTML中。如果您的HTML脚本生成的PHP?这你可以在那里做一个小的改变。或者如果是手工编码,诸如edit plus之类的文本编辑器可能能够执行全局搜索并使用宏进行替换? – KevInSol

+1

不,但这可以很容易地通过一个简单的命令行'sed'来解决。 –

回答

0

我同意,htaccess不能帮你。我想你必须手动改变它们。 我希望我能有更多的帮助

1

为什么你不改变链接到以下?

<a href="http://example.com/index/12345">Click here</a> 

正如你可以改变.htaccess我希望你拥有或管理这个域。所以它应该是可能的。

如果链接是由PHP代码生成的,那么我建议你来实现,并使用翻译功能,如:

function beautify($ugly) { 
    // your logic comes here 
    return $nice; // ;) 
} 

...和它环绕当前输出的URL现有的代码。这有两个好处:

  • 这很容易和更加故障安全迁移到新的URL方案
  • 从现在起,您可以用一个函数
+0

可行的技术! – Yesh

0

号拥有对所有URL相关的代码控制htaccess用于处理对Web服务器的输入,而不是从服务器发回的数据。

如果你使用jQuery,你可以使用类似这样的东西来重写页面加载时的href。

$(function(){ 
    $("a").each(function() { 
     this.href = 'some_new_url that you made based on the one in this.href'; 
    }); 
}); 
相关问题