从WordPress htaccess中排除目录并重定向旧的.html文件
我有一个WordPress安装,它正在替换一个旧网站。旧的(移动式)网站有从WordPress htaccess中排除目录并重定向旧的.html文件,wordpress,apache,.htaccess,mod-rewrite,redirect,Wordpress,Apache,.htaccess,Mod Rewrite,Redirect,我有一个WordPress安装,它正在替换一个旧网站。旧的(移动式)网站有.html文件,我想将这些文件重定向到新的等价文件。这可以将/foo.html重定向到/foo/: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule (.+)\.html$ /$1/ [L,R=301] </IfModule> 我有两个问题: 如果我注释掉第一个块,那新行仍然不允许我访问,比如说/mydirect
.html
文件,我想将这些文件重定向到新的等价文件。这可以将/foo.html
重定向到/foo/
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule (.+)\.html$ /$1/ [L,R=301]
</IfModule>
我有两个问题:
/mydirectory/foo.html
-WP重定向到/missing/
。我不明白为什么/mydirectory/
中的任何内容都可以像以前一样访问,但是所有以.html
结尾的其他URL都应该重写为/filename/
,WP的其他内容也可以正常工作<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# NEW RULE to ignore rewriting for anything in mydirectory
RewriteRule ^mydirectory(/.*)?$ - [L,NC]
RewriteRule ^(.+?)\.html$ /$1/ [L,R=301,NC]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
重新启动发动机
重写基/
#对mydirectory中的任何内容忽略重写的新规则
重写规则^mydirectory(/.*)-[L,NC]
重写规则^(+?)\.html$/$1/[L,R=301,NC]
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则。index.php[L]
谢谢阿努巴瓦,这似乎很管用!我一个人永远也到不了那里。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# NEW RULE to ignore rewriting for anything in mydirectory
RewriteRule ^mydirectory(/.*)?$ - [L,NC]
RewriteRule ^(.+?)\.html$ /$1/ [L,R=301,NC]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>