Apache mod_rewrite可使用动态数字标识符更改单词
我想做的是从一个旧的项目模块中重写URL中的一些单词,使它们看起来适用于当前项目 我开始使用的URL是: 我在.htaccess中拥有的是:Apache mod_rewrite可使用动态数字标识符更改单词,apache,mod-rewrite,friendly-url,seo,Apache,Mod Rewrite,Friendly Url,Seo,我想做的是从一个旧的项目模块中重写URL中的一些单词,使它们看起来适用于当前项目 我开始使用的URL是: 我在.htaccess中拥有的是: # Change Pet and Topic to Story and Chapter RewriteCond stories/topic/view/pet_id/([A-Za-z0-9-]+)/topic_id/ RewriteRule stories/topic/view/pet_id/6/topic_id/.*$ stories/
# Change Pet and Topic to Story and Chapter
RewriteCond stories/topic/view/pet_id/([A-Za-z0-9-]+)/topic_id/
RewriteRule stories/topic/view/pet_id/6/topic_id/.*$ stories/chapter/view/story_id/6/chapter_id/$1
没有在条件的末尾添加数字的一部分,因为我真的只需要在这一点上更改单词。我也不确定这是否合适
不确定我是不是错了,希望有一位mod_重写大师能帮我解决这个问题。谢谢 试试看:
RewriteRule ^(.*)/pet_id/(.*) /$1/story_id/$2 [L]
RewriteRule ^(.*)/topic_id/(.*) /$1/chapter_id/$2 [L]
删除以前的规则,不确定它们试图做什么,但它们不会起作用。
RewriteCond
除了破坏apache之外什么都不做。Hmm,尝试一下,我在整个站点上看到一个内部错误500页#将宠物改写成故事等
重写第二个故事/主题/视图/宠物id/([A-Za-z0-9-]+)/topic_id/
重写规则^(.*)宠物id/(.*)/$1/故事id/$2[L]
重写规则^(.*)主题id/(.*)/$1/章节id/$2[L]
我需要改变我的重写条件吗?@Kotoku在你的规则被打破之前,先把它们处理掉。见编辑谢谢你的提示Jon!运行它,检查输出,一切看起来都很好。(调试器告诉我在第一行之后删除L,否则它将停止并不应用第二个条件)。说我的输出URL应该是:目前还不起作用,我想如果我想解决这个问题,我可能必须编辑代码,因为这些是变量的名称?感谢你至少帮我解决.htaccess错误,只是好奇这是否是我的下一站。@Kotoku“因为这些是变量的名称?”不知道你的意思。我不知道你在做什么,只是你有一个URI,需要从一件事更改到另一件事。如果这不起作用,那么您最终得到的URI不是您所期望的吗?@Kotoku也不知道您正在使用的调试器,但是L
标志只会在当前循环中停止重写。重写引擎将继续循环遍历所有规则,直到URI中没有更改为止。因此,保留L
只会影响更改的顺序,而不会改变结果。