2016-09-19 3 views
1

выясняется, что по разным причинам пришлось изменить URL-адрес моего веб-сайта, старый URL проиндексирован в Google, и я хочу, чтобы вы прошли через них, новый контент отображается с новым URL-адресом.301 redirect apache показывает неправильный URL-адрес

Я добавил это:

Redirect 301 /library/books/pitz-lower.php http://www.example.com/library/pitz-lower.php 

Но чтобы получить от Google, URL-адрес в браузере выглядит следующим образом:

http://www.example.com/library/pitz-lower.php?url=library/pitz-lower 

Htaccess

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
RewriteEngine On 


RewriteBase/
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] 
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] 




RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /library/library\.php\?url=([^\s]+) [NC] 
RewriteRule^/library/%1.php? [L,R=301] 
RewriteCond %{REQUEST_URI} !^/library/library\.php 
RewriteRule ^library/(.+)\.php$ /library/library.php?url=$1 [L] 

</IfModule> 

#r301 

Redirect 301 /library/books/pitz-lower.php http://www.example.com/library/pitz-lower.php 

Я не понимаю, почему это случается, кто-то дает мне руку? Спасибо !!

+2

Вы можете показать свой полный .htaccess? – anubhava

+2

Что вы подразумеваете под «Но попасть из Google»? – arkascha

+0

Я редактирую сообщение, спасибо! Извините за мой английский – PlayerWet

ответ

1

Есть 2 вопроса:

  1. Смешивание mod_rewrite правила и mod_alias правила (т.е. Redirect директива) не хорошо, как эти 2 модули работают в разное время.
  2. Держите 301 правила переадресации перед внутренними перезаписывающими.

Измененная .htaccess должен быть:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteRule ^library/books/pitz-lower\.php$ /library/pitz-lower.php [L,NC,R=301] 

RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] 
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /library/library\.php\?url=([^\s]+) [NC] 
RewriteRule^/library/%1.php? [L,R=301] 

RewriteCond %{REQUEST_URI} !^/library/library\.php 
RewriteRule ^library/(.+)\.php$ /library/library.php?url=$1 [L,QSA] 

Не забудьте очистить кэш браузера при тестировании этого.

+2

Ты большой, очень большой, он был полностью решен, впечатляющий. Большое спасибо !! – PlayerWet