2016-03-10 3 views
1

Я хочу, чтобы перенаправить страницу блогаКак перенаправить без косой черты?

www.example.com/blog/ to www.example.com/blog 
www.example.com/es/blog/ to www.example.com/es/blog 
www.example.com/en/blog/ to www.example.com/en/blog 

У меня есть, но не работает

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

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

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

ответ

0

Ваши RewriteConditions терпят неудачу из-за недействительного шаблона:

RewriteCond %{HTTP_HOST} ^example\.com/blog/$ 

условие выше, если значение хоста example.com/blog/ это условие возвращает false, потому что http_Host r eпредставляет только доменное имя, часть после того, как доменное имя является частью Request_uri, и с ним нельзя манипулировать с использованием переменной http_host.

Вы можете сделать это следующим образом:

RewriteEngine on 


RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteCond %{REQUEST_URI} ^/blog/$ 
RewriteRule ^(.*)/?$ /blog [NC,L,R] 

Приведенный выше пример перенаправляет:

  • example.com/blog/

в

  • пример. com/blog

Если вы хотите удалить слэш для всех запросов, за исключением существующих каталогов, вы можете использовать следующее:

RewriteEngine on 


#if trailing slash 
RewriteCond %{REQUEST_URI} /$ 
#redirect the request to remove the trailing slash 
RewriteRule ^(.+)/?$ /$1 [L,R] 
Смежные вопросы