Как убрать дублирование, страницы доступны по ссылкам без расширения и с ".html" (htaccess)

12
I
На сайте с 29.08.2017
Offline
1
#11
jkm:
ivcou, для исключения достаточно добавить RewriteCond %{REQUEST_URI} !^/search
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !^/search
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9/_\-]+)$ http://site.com/$1.html [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9/_\-]+)\.html$ /?path=$1 [L,QSA]

К сожалению, при таком варианте, результат поиска по любой фразе, сразу переадресовывается на 404 ошибку.

В самом начале .htaccess есть строчка

ErrorDocument 404 http://site.com/404.html

Нашел в коде такую строчку <form action="/search" method="POST">

J
На сайте с 20.02.2014
Offline
120
jkm
#12

Тогда поменять RewriteCond %{REQUEST_URI} !^/search

на RewriteRule ^(search)$ /?path=$1 [L,QSA]

И добавить ниже исключение, чтоб не открывалось /search.html

RewriteEngine On

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

RewriteRule ^(search)$ /?path=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9/_\-]+)$ http://site.com/$1.html [R=301,L]

RewriteCond %{REQUEST_URI} !=/search.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9/_\-]+)\.html$ /?path=$1 [L,QSA]
I
На сайте с 29.08.2017
Offline
1
#13

Огромное спасибо jkm!

Теперь все работает как нужно.

M
На сайте с 04.12.2013
Offline
223
#14
ivcou:
Нашел в коде такую строчку <form action="/search" method="POST">

Вот это и есть место, где меняется имя обработчика, правда, таких мест может быть несколько. Это тот оптимальный вариант, который я предложил попробовать в первую очередь. Если бы не прокатил, тогда уже можно было костыли приделывать.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
12

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