我最近使用htaccess更改了我的网站网址,以便我的网址不会显示文件扩展名。现在我的问题是因为我创建了一个新的xml站点地图,所以我的url将是无扩展的! Google网站管理员工具告诉我有关重复内容的问题!!即。 page和page.html有相同的标题....所以我的问题是如何将带有文件扩展名html的网址重定向到带有扩展名的网址! 这是我的网站网址的示例,其中包含html扩展名
http://www.shenazhpeyk.co.uk/coding-machines.html
我想重定向并将其更改为
http://www.shenazhpeyk.co.uk/coding-machines
这样可以解决Google网站管理员工具的问题(请提供我在htaccess文件中使用的代码)
非常感谢
答案 0 :(得分:2)
也找到了这段代码。不确定它是否会完成同样的事情。似乎对我有用,如上所述(对于PHP)。
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]
我想知道尾随斜杠以及那些是否应该存在或省略?
答案 1 :(得分:0)
尝试将以下内容添加到网站根目录中的.htaccess
文件中,并使用.html
扩展名重定向网址,然后将其删除。
RewriteEngine on
RewriteBase /
#redirect to remove the .html extension
RewriteRule ^(.+)\.html$ $1 [L,NC,R=301]
答案 2 :(得分:0)
试试这个:
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]