通过 mod rewrite 将 URL 作为变量传递

通过 mod rewrite 将 URL 作为变量传递

我正在尝试使用 apache 上的 mod_rewrite 将实际的 url 作为变量传递

我有一个页面 externalLink.php,可以传递一个 url 来做一些神奇的事情。

/externalLink.php?url=http://example.com

我希望这是一个像 /external/ 这样的好 URLhttp://example.com

我已经向我的 htaccess 添加了一条重写规则,希望它能起作用,但我怀疑它不起作用。

重写规则 ^external/([^/.]+)/*$ /externalLink.php?url=$1 [L]

有人知道这是否可能吗?

提前致谢

.k

答案1

尝试这个规则:

RewriteCond %{THE_REQUEST} ^GET\ /external/(http://[^\ ]*)
RewriteRule ^external/http:/ externalLink.php?url=%1 [L]

您需要检查THE_REQUESTApache 是否删除了 URL 路径中的空路径段。

答案2

http:// 中的斜线会出现问题

尝试:

RewriteRule ^external/(^http:\/\/.+)/$ /externalLink.php?url=$1 [L]

相关内容