Mod rewrite 更多Mod_重写问题
好的,有一个客户端有来自searchmarketing的现有链接。我正在将程序从Cold Fusion迁移到PHPMod rewrite 更多Mod_重写问题,mod-rewrite,Mod Rewrite,好的,有一个客户端有来自searchmarketing的现有链接。我正在将程序从Cold Fusion迁移到PHP RewriteEngine on RewriteRule ^cat_ap~([^~]+)~(.*)\.htm$ /urban/cat_ap.php?$1=$2 [R] 目前我有一个URL结构: http://www.test.com/urban/cat_ap~nid~5964.htm 上面的重写规则更改为哪个 http://www.test.com/urban/cat_ap.p
RewriteEngine on
RewriteRule ^cat_ap~([^~]+)~(.*)\.htm$ /urban/cat_ap.php?$1=$2 [R]
目前我有一个URL结构:
http://www.test.com/urban/cat_ap~nid~5964.htm
上面的重写规则更改为哪个
http://www.test.com/urban/cat_ap.php?nid=5964
现在,我希望能够从查询字符串中获取变量,但保持浏览器中的url为原始url,但仍将其转到PHP页面
所以当有人去http://www.test.com/urban/cat_ap~nid~5964.htm
它实际上会转到http://www.test.com/urban/cat_ap.php?nid=5964
但仍显示http://www.test.com/urban/cat_ap~nid~5964.htm
有什么办法吗
谢谢
Mike您已经在这一行执行此操作(但将R标志更改为L):
用户点击的URL仍将显示为.htm版本,而服务器将其处理为.php显式诱导外部重定向。因此,只需删除
R
标志。我认为您需要设置反向代理以实现所需的行为,并在重写规则中使用p标志。我以前使用过这种配置的站点,所以可以说它可以工作,但恐怕我自己从未配置过:-(
好的第一步至少是安装mod_proxy并使其加载并运行。有少量关于代理重写规则的详细信息,并链接到apache.org上的ProxyPassReverse指令文档。R标志将用户重定向到新的URL。此外,我认为原始重写规则中的$1将是变量名的名称,而您修订的重写规则将其设置为一个值
RewriteRule ^/urban/cat_ap~([^~]+)~(.*).htm$ /urban/cat_ap.php?$1=$2 [L]