我更改了我的CMS,现在我的网址没有.html结尾,除了index.html。
我目前的.htaccess
RewriteRule ^((urllist|sitemap_).*\.(xml|txt)(\.gz)?)$ includes/sitemap.php?datei=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^. index.php [L]
我正在使用此代码.htaccess删除.html
RedirectMatch 301 (.*)\.html$ http://domain.com$1
修改
我的旧网址如下所示,列出了404错误
http://domain.com/motor/servo.html
http://domain.com/arduino.html
我的新系统SEO会生成不带.html扩展名的网址,而某些主文件的扩展名为.php。
我可以使用什么正则表达式来解决它?
THX
答案 0 :(得分:2)
您可以将此规则与否定前瞻性正则表达式:
一起使用RedirectMatch 301 ^((?!index)[^.]+)\.html$ http://domain.com/$1
编辑:根据您修改过的问题,您可以拥有此.htaccess:
RewriteEngine On
RewriteCond %{THE_REQUEST} \.html[?\s] [NC]
RewriteRule ^((?!index)[^.]+)\.html$ /$1 [L,NC,R=301]
RewriteRule ^((urllist|sitemap_).*\.(xml|txt)(\.gz)?)$ includes/sitemap.php?datei=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^. index.php [L]