перенаправление файлов с расширением html на файлы без расширения (в URL) - PullRequest
4 голосов
/ 13 февраля 2012

Я недавно изменил URL своего сайта с помощью htaccess, чтобы в моих URL не отображались расширения файлов. Теперь моя проблема в том, что я создал новый xml sitemap, чтобы мой URL был без расширения !!! инструмент Google для веб-мастеров сообщает мне о проблеме с дублированным контентом !! то есть. page и page.html имеют одинаковое название .... поэтому мой вопрос заключается в том, как перенаправить URL-адреса с расширением html файла на URL-адреса без расширения !!! это пример URL моего сайта с расширением html

http://www.shenazhpeyk.co.uk/coding-machines.html

Я хочу перенаправить и изменить его на

http://www.shenazhpeyk.co.uk/coding-machines

, чтобы устранить проблему с инструментами Google для веб-мастеров (укажите код для использования в файле htaccess)

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 11 января 2013

Нашел и этот код.Не уверен, что это будет сделано то же самое.Кажется, работает для меня, как и выше (для 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]

Я задаюсь вопросом о конечных слешах и должны ли они быть там или опущены?

0 голосов
/ 21 сентября 2012

Попробуйте это:

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]
0 голосов
/ 13 февраля 2012

Попробуйте добавить следующее в файл .htaccess в корневом каталоге вашего сайта, перенаправьте URL-адреса с расширением .html и удалите его.

RewriteEngine on
RewriteBase / 

#redirect to remove the .html extension
RewriteRule ^(.+)\.html$ $1 [L,NC,R=301] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...