我将wordpress网站的永久链接结构从/%postname%.html
更改为/%postname%/
。我想将所有旧网址重定向到新结构,因此我将以下内容添加到我的.htaccess:RedirectMatch 301 ^/([^/]+).html$ /$1/
。所以现在我的.htaccess看起来像这样:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RedirectMatch 301 ^/([^/]+).html$ /$1/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
它重定向我的旧帖子网址就好了,但它弄乱了我的主页。如果我尝试访问我的网站/
的根目录,则会重定向到/index/
。
有人可以解释为什么会发生这种情况以及如何解决这个问题吗?
答案 0 :(得分:0)
我明白了。我改变了我的DirectoryIndex,所以它直接转到index.php:
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RedirectMatch 301 ^/([^/]+).html$ /$1/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>