我们有一个网站,遗憾的是所有网址都有.html
后缀,Magento安装,Magento允许您在CMS上进行更改,但遗憾的是,所有这些网址都带有.html
后缀在Google中排名很高。我们需要重定向到非.html
。
因此,请考虑以下情况,我们正在从头开始重建此站点,因此我们在新站点上具有相同的URL但没有.html后缀。
www.example.de/cool-shoes.html
www.example.de/cool-shoes
所以www.example.de/cool-shoes.html
将不再存在,而且我一直在尝试使用 .htaccess 进行重定向而没有运气。
到目前为止我已经尝试过了:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule (.*)index\.html$ /$1 [R=301,L]
和
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
但它似乎不起作用......任何想法?
答案 0 :(得分:10)
好的,经过一些研究,并且未能通过重写规则实现这一点,以下代码行有效:
redirectMatch 301 ^(.*)\.html $1
这对于删除任何网址扩展并避免断开链接非常有用,希望将来可以帮助某人......
喝彩!
答案 1 :(得分:8)
这将重写网址,如http://example.com/page.html - > http://example.com/page
# Remove .html from url
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
答案 2 :(得分:3)
尝试将以下内容添加到网站根目录中的.htaccess文件中,并重定向.html扩展名并将其删除。
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]
答案 3 :(得分:2)
这是解决方案对我有用。
RewriteCond %{THE_REQUEST} \.html [NC]
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [L]
答案 4 :(得分:1)
这应该可以解决问题:
RewriteEngine On
RewriteRule ^(\w+)\.html$ /$1 [R=301,L]
答案 5 :(得分:1)
关注steps,您可以在不修改.htaccess文件的情况下从网址中删除.html。
答案 6 :(得分:0)
尝试将此文件放入.htaccess文件中 永久重定向www.mysite.de/cool-shoes.html www.mysite.de/cool-shoes 这可能对你有所帮助
答案 7 :(得分:0)
这适用于以.html /product/raspberrypi.html --->结尾的网址/ product / raspberrypi /(/product/raspberrypi/index.php)index.php是隐藏的。我花了一些时间才弄明白这一点。大声笑......
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)\.html$ $1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
你必须使用' REQUEST_URI'并在索引重定向规则之前添加它,因为它可以被应用程序覆盖。重要的是要知道它的URI不是我们试图重定向的文件名或目录,因为文件名都在根文件夹(Wordpress)中有index.php。