Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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 htaccess将/foldername/page_name重定向到/page name_Regex_Wordpress_.htaccess_Redirect_Rewrite - Fatal编程技术网

Regex htaccess将/foldername/page_name重定向到/page name

Regex htaccess将/foldername/page_name重定向到/page name,regex,wordpress,.htaccess,redirect,rewrite,Regex,Wordpress,.htaccess,Redirect,Rewrite,我有一个问题: 最近我用一个新网站(WordPress是CMS)替换了我的旧网站(没有CMS)。但很多人仍然试图通过旧的URL访问该网站。 显然,我想将它们重定向到正确的页面 例如:上一个URL是:http://domain.com/foldername/page_name 在新网站上,该页面位于http://domain.com/page-name 注#1:下划线已替换为破折号 注#2:某些页面可能包含更多下划线。例如:http://domain.com/foldername/an_other

我有一个问题: 最近我用一个新网站(WordPress是CMS)替换了我的旧网站(没有CMS)。但很多人仍然试图通过旧的URL访问该网站。 显然,我想将它们重定向到正确的页面

例如:上一个URL是:
http://domain.com/foldername/page_name

在新网站上,该页面位于
http://domain.com/page-name

注#1:
下划线
已替换为
破折号

注#2:某些页面可能包含更多下划线。例如:
http://domain.com/foldername/an_other_page_name

注#3:由于我使用WordPress作为CMS,因此我的.htaccess文件中已经有一些代码

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress

由于我对htaccess的使用不如你们中的一些人好,我希望有人能找到解决方案,因为我正在失去访问者,因为他们找不到正确的页面。

就在
RewriteBase
行的下方,您可以使用此递归规则

RewriteRule "^(foldername)/([^_]*)_+([^_]*_.*)$" /$1/$2-$3 [N]
RewriteRule "^(foldername)/([^_]*)_([^_]*)$" /$2-$3 [L,R=301]