Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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-breaks-Archive重写WordPress永久链接URL_Apache_Wordpress_Mod Rewrite - Fatal编程技术网

Apache 使用mod_Rewrite-breaks-Archive重写WordPress永久链接URL

Apache 使用mod_Rewrite-breaks-Archive重写WordPress永久链接URL,apache,wordpress,mod-rewrite,Apache,Wordpress,Mod Rewrite,下面的mod_重写规则完成了将www.domain.com/2011/11/page重写为www.domain.com/page的任务,但中断了www.domain.com/2011/11/(即中断WordPress存档列表)并将其重定向到站点的根目录 重写规则应该只重写在^([0-9]{4})/([0-9]{1,2})/page之后有内容的项,而不重写^([0-9]{4})/([0-9]{1,2})/ 有什么建议吗 回答 开头缺少初始正斜杠: RewriteRule ^/([0-9]{4})/

下面的mod_重写规则完成了将
www.domain.com/2011/11/page
重写为
www.domain.com/page
的任务,但中断了
www.domain.com/2011/11/
(即中断WordPress存档列表)并将其重定向到站点的根目录

重写规则应该只重写在
^([0-9]{4})/([0-9]{1,2})/page
之后有内容的项,而不重写
^([0-9]{4})/([0-9]{1,2})/

有什么建议吗

回答

开头缺少初始正斜杠:

RewriteRule ^/([0-9]{4})/([0-9]{2})/(.*)$ /$3 [NC,R=301,L]
并且需要WordPress permalink条目:

/%postname%/
而不是:

%postname%

虽然我不确定后者有多大帮助。

我认为您需要将*改为a+

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

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

使用(.)时,它可能不匹配任何内容,因此像“/2011/11/”这样的请求将匹配,但(.)的后面引用将为空,因此重写将转到“/”。+表示正则表达式中至少需要1个字符满足“.”的要求。

我晚了一点回答,但我没有足够的分数在8小时内回答我自己的问题。
*
虽然我无法及时回答我自己的问题,但实际上有效;-)
RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.+)$ /$3 [NC,R=301,L]