Mod rewrite 修改澄清问题。仅适用于动态URL?
我被要求开发一个修改来改变Mod rewrite 修改澄清问题。仅适用于动态URL?,mod-rewrite,Mod Rewrite,我被要求开发一个修改来改变 http://www.example.com/health-and-fitness-tips/999/ 进入 http://www.example.com/health-and-fitness-tips/how-do-I-lose-10kg-in-12-weeks/ 其中999是id和我如何在12周内减掉10kg是标题 这是可能的吗?或者mod_rewrite只是为了更改以下内容 http://localhost/siteengine/products.php?id=
http://www.example.com/health-and-fitness-tips/999/
进入
http://www.example.com/health-and-fitness-tips/how-do-I-lose-10kg-in-12-weeks/
其中999
是id
和我如何在12周内减掉10kg
是标题
这是可能的吗?或者mod_rewrite只是为了更改以下内容
http://localhost/siteengine/products.php?id=123
进入
http://localhost/products/123
??这实际上不是AFAIK所能做到的(动态方面,没有额外的模块)。您需要做的第一步是将所有链接转换为SEO链接,然后您需要将标题作为参数提供给页面 例如:
<a href=/health-and-fitness-tips/how-do-I-lose/>
Condition: ^/health-and-fitness-tips/(.*)$/
Rewrite to: ^/page.php?title=$1
条件:^/健康和健身提示/(*)$/
重写为:^/page.php?标题=$1
其中一些是伪代码,但是在page.php中解析$_GET['title'],并基于permalink查询数据库
您还需要为每个永久对齐的URI设置301s,以便在完成此操作后搜索引擎不会丢失。这实际上是不可能做到的(动态方面,没有额外的模块)。您需要做的第一步是将所有链接转换为SEO链接,然后您需要将标题作为参数提供给页面 例如:
<a href=/health-and-fitness-tips/how-do-I-lose/>
Condition: ^/health-and-fitness-tips/(.*)$/
Rewrite to: ^/page.php?title=$1
条件:^/健康和健身提示/(*)$/
重写为:^/page.php?标题=$1
其中一些是伪代码,但是在page.php中解析$_GET['title'],并基于permalink查询数据库
您还需要为每个永久对齐的URI设置301s,以便在完成此操作后搜索引擎不会丢失。Mod\u rewrite仅将正则表达式应用于URL,因此无法从Title或vai-vs获取ID(据我所知).Mod_rewrite只是将正则表达式应用于URL,因此从Title或vai-vs获取ID是不可能的(据我所知)。您可以这样做,但这将是混乱和滞后的。您仍然需要一个脚本来执行重写 查看该指令的文档,特别是prg映射类型上的位——使用外部程序提供URL映射服务 现在,请注意,我认为这是一个糟糕的主意,但它会让你完成这件事。你可以这样做,但它会变得凌乱和滞后。您仍然需要一个脚本来执行重写 查看该指令的文档,特别是prg映射类型上的位——使用外部程序提供URL映射服务
现在,请注意,我认为这是一个糟糕的主意,但它可以让您完成这项工作。我猜meder给出的答案就是您正在寻找的答案,但从技术上讲,您可以创建一个静态映射文件,将一组标题字符串重定向到ID,并且它不必执行外部
prg
可执行文件:
RewriteMap static-title-to-id txt:/tmp/title_to_id.txt
RewriteRule ^/health-and-fitness-tips/(.*)/ /health-and-fitness-tips/${static-title-to-id:$1}/ [L]
使用/tmp/title\u to_id.txt
文件的内容如下:
how-do-I-lose-10kg-in-12-weeks 999
some-other-title 988
and-another 983
我猜meder给出的答案就是您正在寻找的答案,但从技术上讲,您可以创建一个静态映射文件,将一组标题字符串重定向到ids,而不必执行外部
prg
可执行文件:
RewriteMap static-title-to-id txt:/tmp/title_to_id.txt
RewriteRule ^/health-and-fitness-tips/(.*)/ /health-and-fitness-tips/${static-title-to-id:$1}/ [L]
使用/tmp/title\u to_id.txt
文件的内容如下:
how-do-I-lose-10kg-in-12-weeks 999
some-other-title 988
and-another 983
方便的解决方案。如果您无法编辑导致页面名称不正确的代码,这可能非常有用。Meder的回答从技术上回答了我的问题,但没有提供可行的结果。当我输入这个时,我实际上已经完成了80%的实现你的答案。非常感谢。方便的解决方案。如果您无法编辑导致页面名称不正确的代码,这可能非常有用。Meder的回答从技术上回答了我的问题,但没有提供可行的结果。当我输入这个时,我实际上已经完成了80%的实现你的答案。非常感谢。