Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Regex 用于重写潜在扩展名的URL重写规则_Regex_Apache_Mod Rewrite - Fatal编程技术网

Regex 用于重写潜在扩展名的URL重写规则

Regex 用于重写潜在扩展名的URL重写规则,regex,apache,mod-rewrite,Regex,Apache,Mod Rewrite,以下规则将domain.com/2009/05/url of some awesome/重写为domain.com/url of some awesome/: RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.+)$ /$3 [NC,R=301,L] 网站中有一些旧链接保留了had.html的旧结构,因此需要修改规则以重写上述内容,或者将某些awesomeness.html的domain.com/2009/05/url或domain.com/2009/05/

以下规则将
domain.com/2009/05/url of some awesome/
重写为
domain.com/url of some awesome/

    RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.+)$ /$3 [NC,R=301,L]

网站中有一些旧链接保留了had.html的旧结构,因此需要修改规则以重写上述内容,或者将某些awesomeness.html的
domain.com/2009/05/url
domain.com/2009/05/url/feed/
改写为
某些awesomeness的domain.com/url/
我认为.htm或.html位于末尾,您不希望它成为
$3
的一部分吗

RewriteRule ^([0-9]{4})/([0-9]{1,2})/((?:(?!\.html?$).)+)(?:\.html?)?$ /$3 [NC,R=301,L]

提示:下次尽量说得绝对具体。“在某些情况下,原始请求可能有一个.html.htm或/feed/”,这是非常模糊的。

因此,如果原始URI是
domain.com/2009/05/foo.html
如果您只是剥离任何“/yyyy/mm”值,是否希望它重定向到
domain.com/foo.html
,您需要添加一个规范的元标记,以便将seo页面排名分配给主页面。进一步阅读:@anubhava,这在某种程度上是原始重写完成的。正确。我更新了这个问题,以便其他观众能更清楚地理解这个问题。