Diggbar modrewrite-它们如何通过modrewrite传递URL? [英] Diggbar modrewrite- How do they pass URLs through modrewrite?

查看:29
本文介绍了Diggbar modrewrite-它们如何通过modrewrite传递URL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用新的Diggbar,您可以将http://digg.com放在您当前位于的任何URL前面,这将创建一个Digg短URL.我只是假设他们通过modrewrite来做到这一点(尽管我不确定,因为我是新手.)

With the new Diggbar, you can put http://digg.com in front of any URL that you are currently at and it will create a Digg short URL. I am only assuming they do this by modrewrite (though I am not sure since I am new at this all).

这是怎么做的?在我看来,当我在我正在工作的网站上尝试此操作时,它会爆炸.

How is this done? It seems to me when I try this with a website I am working on, it bombs out.

我希望能够执行以下操作:

I want to be able to do the following:

http://example.com/http://stackoverflow.com/question/ask

并进行modrewrite,使它可以转到

and have a modrewrite that will allow this to go to

http://example.com/index.php?url=http://stackoverflow.com/question/ask

但是当我使用此modrewrite时:

But when I use this modrewrite:

RewriteEngine on
RewriteRule ^([A-Za-z0-9]+)$ /message.php?id=$1 [L]

它不起作用.我在做什么错了?

it doesn't work. What am I doing wrong?

推荐答案

您必须从

You have to take the value from the request line because Apache removes empty path segments. The initially requested URI path /http://foobar/ becomes /http:/foobar/. But the request line (THE_REQUEST) stays untouched:

RewriteCond %{THE_REQUEST} ^GET\ /(https?://[^\s]+)
RewriteRule ^https?:/ index.php?url=%1 [L]

这篇关于Diggbar modrewrite-它们如何通过modrewrite传递URL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆