.htaccess 将具有html扩展名的文件重定向到不具有扩展名的文件(在url中)

.htaccess 将具有html扩展名的文件重定向到不具有扩展名的文件(在url中),.htaccess,redirect,.htaccess,Redirect,我最近使用htaccess更改了我的网站url,这样我的url就不会显示文件扩展名。现在我的问题是,我已经创建了一个新的xml站点地图,所以我的url将是无扩展的!!!谷歌网站管理员工具告诉我关于重复内容的问题!!例如,page和page.html具有相同的标题。。。。所以我的问题是如何将文件扩展名为html的URL重定向到没有扩展名的URL!!! 这是一个带有html扩展名的网站url示例 我想重定向并将其更改为 因此,这将解决谷歌网站管理员工具的问题(请为我提供一个在htaccess文件

我最近使用htaccess更改了我的网站url,这样我的url就不会显示文件扩展名。现在我的问题是,我已经创建了一个新的xml站点地图,所以我的url将是无扩展的!!!谷歌网站管理员工具告诉我关于重复内容的问题!!例如,page和page.html具有相同的标题。。。。所以我的问题是如何将文件扩展名为html的URL重定向到没有扩展名的URL!!! 这是一个带有html扩展名的网站url示例

我想重定向并将其更改为

因此,这将解决谷歌网站管理员工具的问题(请为我提供一个在htaccess文件中使用的代码)


非常感谢

尝试将以下内容添加到站点根目录中的
.htaccess
文件中,使用
.html
扩展名重定向URL并将其删除

RewriteEngine on
RewriteBase / 

#redirect to remove the .html extension
RewriteRule ^(.+)\.html$ $1 [L,NC,R=301] 
试试这个:

Options +FollowSymLinks -MultiViews
DirectorySlash Off

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.html !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]

RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]

我也找到了这个代码。不确定它是否能完成同样的任务。对我来说似乎和上面的一样(对于PHP)


我想知道后面的斜杠,以及这些斜杠是否应该存在或省略?

另请参阅,谢谢您的回复,但我收到以下错误:页面没有正确重定向这是我以前的错误,它可以正常工作,但它不会将html页面重定向到没有扩展名的页面,在RewriteCond%{REQUEST_FILENAME}上重写引擎-f RewriteRule^([^\.]+)$$1.html[NC,L]我找到了解决方案,以防其他人也有同样的问题!英雄联盟选项+FollowSymLinks-MultiViews目录在RewriteCond%{SCRIPT_FILENAME}/-d RewriteCond%{SCRIPT_FILENAME}.html上删除重写引擎-f RewriteRule[^/]$%{REQUEST\u URI}/[R=301,L]RewriteCond%{ENV:REDIRECT\u STATUS}^$RewriteRule^(+)\.html$/$1[R=301,L]RewriteCond%{SCRIPT\u FILENAME}.html-f RewriteRule[^/]${REQUEST\u URI}.html[QSA,L]注意:不确定它是否正确,但它可以工作!阿米尔:祝贺你!如果此解决方案有效,请将其作为正式答案而不是评论。这样人们会更容易看到它!:)我想知道的是如何让这类事情工作,但仍然使用内容协商(+多视图)处理图像等。我知道我参加聚会迟到了,但你能告诉我你是如何将它重定向回没有文件扩展名的页面的吗?我真的很喜欢你的代码,现在正在使用它。
RewriteEngine On

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ /$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ /$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]