在Linux上动态地将友好的浏览网址重定向到动态的最佳方式是什么?
离。
domainone.com/dir/one/two
重定向到
domaintwo.com/index.aspx?a=one&b=two
和
domainone.com/dir/three/four 重定向到 domaintwo.com/index.aspx?a=three&b=four
答案 0 :(得分:2)
名为Location的HTTP标头是您跨主机/域重定向用户的方式。
根据您的服务器配置和用于生成HTTP标头的机制,具体实现会有所不同。 PHP中的一个示例(因为您的问题似乎被标记)是包含以下代码:
header('Location: http://domaintwo.com/index.aspx?a=one&b=two');
上面的字符串与任何其他字符串一样,因此应用适当的逻辑来提供所需的重定向URL。
域配置文件(精确路径因服务器软件和操作系统而异)或更常见的.htaccess
文件中也可能产生相同的效果。如果您提供有关托管环境的更多信息,则有人可以帮助您设计所需的重写规则。我更喜欢将这种级别的智能重写放在PHP脚本中,因为我认为.htaccess文件往往更难以管理和“阅读”。
答案 1 :(得分:2)
来自Apache内部:
在服务器配置文件中,或更可能在.htaccess
文件中。
您可以使用mod_rewrite执行此操作,但由于您需要重定向,因此使用mod_alias和RedirectMatch语句会更合适。
RedirectMatch 301 ^/a/([^/]+)/([^/]+)$ http://domaintwo.com/index.aspx?a=$1&b=$2
重写变体:
RewriteEngine On
RewriteBase /
RewriteRule ^/a/([^/]+)/([^/]+)$ http://domaintwo.com/index.aspx?a=$1&b=$2 [R=301,L]
请注意使用 301 ,即永久重定向,暂时使用 302 ,或者当您总是希望人们重定向而不是直接在将来访问时使用 301 。
答案 2 :(得分:0)
在Linux上使用Apache的一种非常标准的方法是将Apache与mod_rewrite一起使用(如何安装和配置Apache和mod_rewrite,如果它尚未设置,将取决于您的Linux发行版)
然后,在Apache配置中,您可以添加如下行:
RewriteEngine On
RewriteRule ^/a/([^/]+)/([^/]+) http://www.domaintwo.com/index.aspx?a=$1&b=$2