Page 1 of 1
Слеш в конце URL
Posted: Mon Jun 25, 2018 1:31 pm
by themix
Здравствуйте!
подскажите плз со стандартными реврайтами
RewriteRule ^([^/]+)/$ /tld/cgi/out.php?url=content&p=100&dont_count_in_trade=true&skip_sell=true&group_name=$1&order=ctr&%{QUERY_STRING} [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ /tld/cgi/out.php?url=content&p=100&dont_count_in_trade=true&skip_sell=true&group_name=$1&order=$2&page=$3&%{QUERY_STRING} [L]
как сделать так, чтоб работали ссылки вида
http://domain.com/en/category
по дефолту работает так
http://domain.com/en/category/, но надо, чтоб работало и со слешом в конце и без
Re: Слеш в конце URL
Posted: Mon Jun 25, 2018 3:48 pm
by admin
Приветствую!
самый простой вариант - добавить реврайт без слеша в конце.
Еще лучше прочесть любую базову доку по реврайтам - гарантированно пригодится елси будете заниматься сайтами.
Re: Слеш в конце URL
Posted: Tue Jun 26, 2018 10:19 am
by themix
это было первое, что я сделал
если добавить такой реврайт
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ /tld/cgi/out.php?url=content&p=100&dont_count_in_trade=true&skip_sell=true&group_name=$1&order=$2&page=$3&%{QUERY_STRING} [L]
получаем Internal Server Error
Re: Слеш в конце URL
Posted: Tue Jun 26, 2018 11:35 am
by themix
вообще, вся конетель произошла из-за гугла.
скормив ему неправильный сайтмэп, гугл проиндексил страницы вида
http://domain.com/en/Ass
и пометил их как страницы с ошибками
Как будет правильней поступить: изменить .htaccess и добавить возможность срабатывать ссылкам без слеша в конце
или засабмитить сайтмап с правильными урлами и через тулзу Delete URL удалить страницы с ошибками из Webmaster Tools ?
спасибо.
Re: Слеш в конце URL
Posted: Tue Jun 26, 2018 4:25 pm
by admin
Как будет правильно для гугла я не знаю тк не работаю в гугле )
Что б узнать почему выдает 500 достаточно посмотреть в лог вебсервака - оно там конкретно пишет в чем проблема.
Либо попросите админа если лень самостоятельно смотреть в лог.
Re: Слеш в конце URL
Posted: Thu Jun 28, 2018 1:01 pm
by themix
ошибки в логе такого плана:
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
базовым уровнем mod_rewrite владею, и не вижу ошибок в синтаксисе, но почему не получается заставить работать ссылки без слеша в конце URL пока не могу понять.
если слеш убрать отсюда
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ /tld/cgi/out.php?url=content&p=100&dont_count_in_trade=true&skip_sell=true&group_name=$1&order=$2&page=$3&%{QUERY_STRING} [L]
то при
http://domain.com/Teen/ - Internal Server Error
http://domain.com/Teen - Not Found
Re: Слеш в конце URL
Posted: Thu Jun 28, 2018 1:53 pm
by richmantrade
Так попробуй:
Code: Select all
RewriteRule ^([^/]+)/(ctr|date|duration)/([0-9]+)$ /tld/cgi/out.php?url=content&p=100&dont_count_in_trade=true&skip_sell=true&group_name=$1&order=$2&page=$3&%{QUERY_STRING} [L]
Еще можно ключ [L] временно заменить на [L,R=301] - тогда будет видно куда именно реврайтит.
Re: Слеш в конце URL
Posted: Thu Jun 28, 2018 5:18 pm
by admin
Тут с ходу тоже не скажу, это надо садиться и разбираться в конкретно вашей ситуацией с реврайтами.
Как обычно 2 варианта - совершенно бесплатно почитать доку и поэксперментировать с реврайтами самостоятеьлно или заплатить и это сделают за вас.
Re: Слеш в конце URL
Posted: Tue Jul 03, 2018 4:19 pm
by themix
решил вопрос следующим образом. думаю, кому-то пригодится.
данный код редиректит на этот же урл, но со слешем в конце:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$
http://site.com/$1/ [L,R=301]
Re: Слеш в конце URL
Posted: Tue Jul 03, 2018 4:30 pm
by admin
Спасибо, да, надеюсь кому-то пригодится.