好的,让客户端有来自搜索营销的现有链接。我正在将程序从Cold Fusion迁移到PHP。
RewriteEngine on
RewriteRule ^cat_ap~([^~]+)~(.*)\.htm$ /urban/cat_ap.php?$1=$2 [R]
目前我有一个网址结构:
http://www.test.com/urban/cat_ap~nid~5964.htm
以上重写规则更改为
http://www.test.com/urban/cat_ap.php?nid=5964
现在我希望能够从查询字符串中获取变量,但是将浏览器中的url保持为原始http://www.test.com/urban/cat_ap~nid~5964.htm,但仍然将其转到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
。
关于如何做到这一点的任何想法?
由于
麦克
答案 0 :(得分:0)
您已在此行上执行此操作(但将R标志更改为L):
RewriteRule ^/urban/cat_ap~([^~]+)~(.*).htm$ /urban/cat_ap.php?$1=$2 [L]
用户点击的网址仍将显示为.htm版本,而服务器将其显示为.php
答案 1 :(得分:0)
R
flag明确诱导外部重定向。所以只需删除R
标记。
答案 2 :(得分:0)
我认为您需要设置反向代理以实现所需的行为,并将P标志与重写规则一起使用。我之前使用过这种配置的网站,所以可以说它有效,但我恐怕自己从未配置过: - (
至少第一步是安装mod_proxy并将其加载并运行。 mod_rewrite cookbook page on the P flag在代理RewriteRules上有一些细节,并链接到apache.org上的ProxyPassReverse指令文档。