.htaccess保留查询字符串的内部重写
我需要重写一个url,为内部重写保留一个查询字符串。 另一个用于展示 因此,当前的url:.htaccess保留查询字符串的内部重写,.htaccess,redirect,joomla,joomla2.5,.htaccess,Redirect,Joomla,Joomla2.5,我需要重写一个url,为内部重写保留一个查询字符串。 另一个用于展示 因此,当前的url: www.mysite.com/staff/teachers?id=37:john 需要在内部重写为: www.mysite.com/staff/teachers/37 不太确定从哪里开始,我正在尝试,但不知道如何访问“id=”和“:”之间的数字以用于重写 谢谢您的帮助。您不能重写“用于显示”的URL。你所能做的就是告诉浏览器加载一个新的URL。当浏览器请求新URL时,服务器无法知道加载该URL的原因(
www.mysite.com/staff/teachers?id=37:john
需要在内部重写为:
www.mysite.com/staff/teachers/37
不太确定从哪里开始,我正在尝试,但不知道如何访问“id=”和“:”之间的数字以用于重写
谢谢您的帮助。您不能重写“用于显示”的URL。你所能做的就是告诉浏览器加载一个新的URL。当浏览器请求新URL时,服务器无法知道加载该URL的原因(即,它是先前重定向的结果),因此新URL需要包含足够的信息以加载实际页面
换句话说,您必须:
- 在“漂亮”的URL中包括ID,例如
www.mysite.com/staff/teachers/37 john
- 让您的应用程序根据内部重写的URL中的用户名查找用户,例如
www.mysite.com/staff/teachers?lookup_name=john
/staff/teachers/([0-9]+)
,并在查询字符串中使用捕获的$1
;网上有很多这种简单重写的例子。找不到一个例子来告诉我如何只保留数字(在“?id=”和“:”@buzibuzi之间)。这很简单,只需匹配?id=([0-9]+):(.*)
。但是您没有?id=
和:
-这就是您正在生成的位。就像我说的,您需要从浏览器发送的内容开始,即/staff/teachers/37
。好的,如果url保持不变,我就没有问题了。问题是它是由Joomla在从1.5升级到2.5后生成的,我想替换这些url