我正在尝试使用 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_REQUEST
Apache 是否删除了 URL 路径中的空路径段。
答案2
http:// 中的斜线会出现问题
尝试:
RewriteRule ^external/(^http:\/\/.+)/$ /externalLink.php?url=$1 [L]