Каким правилом убрать слэш в конце html страницы ".html/"

12
SO
На сайте с 26.12.2008
Offline
28
3230

Hi,

помогите пожалуйста убрать слэш в конце адреса страницы. Сейчас при обращении site.com/page.html/ выдает 200 отклик, а надо чтоб был 301 редирект на site.com/page.html

Спасибо.

Carapax
На сайте с 27.03.2008
Offline
94
#1
Serega_on:
...site.com/page.html/ выдает 200 отклик, а надо чтоб был 301 редирект на site.com/page.html

Попробуйте так:

RewriteRule ^(.*).html/ $1.html [R=301,L]

Должно работать...

играем (http://www.awro.ru/) спортивное питание (https://maxnutrition.ru/) магазин сантехники в спб (https://saniteka.ru/)
SO
На сайте с 26.12.2008
Offline
28
#2

Спасибо, а не подскажите что означает в этом правиле $1, может без нее?

Просто возникает один нюанс

Carapax
На сайте с 27.03.2008
Offline
94
#3

$1 принимает значение из (.*). Без него вряд ли получится.

SO
На сайте с 26.12.2008
Offline
28
#4

Да с еденицой разобрался, но вот нюанс и интересует насколько это имеет значение важности.

При просмотре статуса страницы, например http://www.site.com/page.html/ сервер отдает следующее:

#1 Server Response: http://www.site.com/page.html/

HTTP Status Code: HTTP/1.1 301 Moved Permanently

Location: http://site.com/page.html

Redirect Target: http://site.com/page.html

#2 Server Response: http://site.com/page.html

HTTP Status Code: HTTP/1.1 301 Moved Permanently

Location: http://www.site.com/page.html

Redirect Target: http://www.site.com/page.html

#3 Server Response: http://www.site.com/page.html

HTTP Status Code: HTTP/1.1 200 OK

Тоесть по сути делается один ненужный редирект к домену без www и потом обратно если изначалбно введенный адрес страницы с www.

В самом файле htacces так же прописано правило редиректа при обращении без www к www.

Carapax
На сайте с 27.03.2008
Offline
94
#5
Serega_on:
#1 Server Response: http://www.site.com/page.html/
HTTP Status Code: HTTP/1.1 301 Moved Permanently
Location: http://site.com/page.html
Redirect Target: http://site.com/page.html

Тут "http://www.site.com/page.html/" должен меняться на "http://www.site.com/page.html". Смотрите где-то в другом месте.

SO
На сайте с 26.12.2008
Offline
28
#6

А какие могут быть варианты влияющие на это?

Спасибо.

S
На сайте с 28.10.2005
Offline
305
#7

htaccess озвучьте полностью

SO
На сайте с 26.12.2008
Offline
28
#8

Вот весь, но ничего особенного в нем нет.

AddType application/x-httpd-php .html .htm


RewriteEngine On
RewriteBase /

RewriteRule ^(.*).html/ $1.html [R=301,L]

RewriteCond $2 !^(.*)
rewritecond %{query_string} .
RewriteRule ^(.*)$ http://www.site.com/?$2 [L]

rewritecond $1 !^(page.php)
rewritecond %{query_string} .
RewriteRule ^(.*)$ http://www.site.com/$1? [R=301,L]

RewriteCond %{HTTP_HOST} ^site.com
RewriteRule (.*) http://www.site.com/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.site.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} !site.com
RewriteRule (.*) - [G,L]

Carapax
На сайте с 27.03.2008
Offline
94
#9

Попробуйте для начала вот это убрать:

RewriteCond $2 !^(.*)

rewritecond %{query_string} .
RewriteRule ^(.*)$ http://www.site.com/?$2 [L]

rewritecond $1 !^(page.php)
rewritecond %{query_string} .
RewriteRule ^(.*)$ http://www.site.com/$1? [R=301,L]
SO
На сайте с 26.12.2008
Offline
28
#10

К cожалению вариант убрать эту часть не совсем подходит, так как он убирает любую запросную часть, типа site.com/?x=20 to site.com

Убирал эту конструкцию, но все остается без изменений, тоесть она не влияет.

Serega_on добавил 16.07.2010 в 11:27

Вообщем убрал это правило


RewriteCond %{HTTP_HOST} ^site.com
RewriteRule (.*) http://www.site.com/$1 [R=301,L]

и наблюдается следующее, при обращении к странице http://www.site.com/page.html/ идет редирект на http://site.com/page.html и задумался может это особенность хостера?

хотя подобное на движке wordpress дает 301 редирект без проблем на нужный адрес.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий