0

我已将 html 站点更改为 WordPress 安装。

旧的 .html 链接已被重定向到正确的 wordpress 页面。显然是由猴子构建的旧站点有一个页面/over ons.html。没错,文件名中有一个空格。所以现在,我在/over%20ons.html 上收到了外部请求。我不知道如何在.htaccess 中解决这个重定向问题。它必须引用的页面是/over-ons/。

到目前为止,这是我的 .htaccess:

RedirectMatch 301  ^/([^/.]+)\.html$ /$1/
Redirect 301  /over%20ons.html http://www.sterkermerk.nl/over-ons/
Redirect 301  /index.html http://www.sterkermerk.nl/
# 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

第二行包含规则。我试图逃避 %20,尝试在 RedirectMatch 中使用正则表达式,但我无法让它工作。

有人有想法吗?

4

1 回答 1

0

使用 mod_rewrite 而不是 mod_alias (Redirect语句),因为您已经在使用 mod_rewrite 并且它们会相互冲突:

RewriteRule ^over\sons\.html$ http://www.sterkermerk.nl/over-ons/ [L,R=301]
RewriteRule ^index\.html$ http://www.sterkermerk.nl/ [L,R=301]
RewriteRule ^([^/.]+)\.html$ /$1/ [L,R=301]

(替换Redirect* 语句)

URI 在通过重写规则发送之前被解码,因此您不需要使用%20, 只是\s\将匹配空格。

于 2013-10-24T15:27:16.787 回答