Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache mod_rewrite可使用动态数字标识符更改单词_Apache_Mod Rewrite_Friendly Url_Seo - Fatal编程技术网

Apache mod_rewrite可使用动态数字标识符更改单词

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/

我想做的是从一个旧的项目模块中重写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/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
只会影响更改的顺序,而不会改变结果。