Вопрос по magento, .htaccess, apache, url-rewriting – Удалить .html из URL с перенаправлением
У нас есть веб-сайт, к сожалению, все URL имеют.html
суффикс, это установка Magento, Magento позволяет вам изменить это на CMS, но опять же, к сожалению, все эти URL с.html
Суффиксы имеют хороший рейтинг в Google. Нам нужно перенаправить на не.html
.
Итак, рассмотрим следующий сценарий: мы перестраиваем этот сайт с нуля, поэтому у нас есть те же самые URL на новом сайте, но без суффикса .html.
Now is:www.example.de/cool-shoes.html
Will be: www.example.de/cool-shoes
Такwww.example.de/cool-shoes.html
больше не будет существовать, и я пытался перенаправить с.htaccess без удачи
Я уже пробовал:
<code>RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/ RewriteRule (.*)index\.html$ /$1 [R=301,L] </code>
а также:
<code>RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html </code>
но, похоже, это не работает ... есть идеи?
после некоторого исследования и без достижения этого с помощью правила перезаписи сработала следующая строка кода:
redirectMatch 301 ^(.*)\.html $1
Это очень полезно, чтобы удалить любое расширение URL и избежать битых ссылок, надеюсь, поможет кому-то в будущем ...
ура!
.html
, Первая часть - это то, что соответствует: любой URL, который имеет.html
,$1
это то, что находится в скобках матча: все, кроме.html
.
$
чтобы обеспечить.html
приходит в конце URL:redirectMatch 301 ^(.*)\.html$ $1
мерыи вы сможете удалить .html из URL без изменения файла .htaccess.
RewriteEngine On
RewriteRule ^(\w+)\.html$ /$1 [R=301,L]
[R=301,L]
это говорит моду переписать, чтобы перенаправить, а не переписать.RewriteRule ^(\w+)\.html$ /$1 [R=301,L]
должно сработать.
http://example.com/page.html - & GT;http://example.com/page
# Remove .html from url
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
.html
не удаляйте это. Это также кажется правилом перезаписи, а не правилом перенаправления. Было бы нужно[R=301,L]
в конце, чтобы сделать любое перенаправление.
заканчивающихся на .html /product/raspberrypi.html --- & gt; / 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 не является именем файла или каталогом, который мы пытаемся перенаправить, поскольку все имена файлов имеют index.php в корневых папках (Wordpress).
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]
.html
но ты не хочешь.html
появляться в URL.
.html
с URL, но все еще загружает необходимый файл. Спасибо, Патрик!
его сайта, перенаправьте URL-адреса с расширением .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]