2015-03-11 3 views
1

для нашего клиентского проекта нам нужно перенаправить все url-вызовы в соответствующее расширение .php-файла. это делается для рейтинга SEO (google). избегая индексации обоих url (с * .php и без)apache перенаправить 301 на .php расширение файла

Мы пытаемся сделать это с использованием файла .htaccess (общий хост), но, похоже, он работает только для перенаправления с другим URL-адресом, а не с тем, который просто добавив расширение «.php».

разные URL работы

abc -> abc2.php 

Тот же URL не работает

abc -> abc.php 

вот наш пример кода:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.abc\.co.uk 
RewriteRule (.*) http://www.abc.co.uk/$1 [R=301,L] 

# this doesn't work 
Redirect 301 /test http://www.abc.co.uk/test.php 

# this redirect works as the url is different 
Redirect 301 /test-abc http://www.abc.co.uk/abc.php 

мы размещаем с 1 & 1 общий хост-сервер. PHP версия 5.5

Я также попробовал этот код, который перенаправляет но страница не загружается прямо сейчас: (. * | HTML)

RewriteRule ^(.+)\.(.*)$ http://abc.co.uk/$1.php [R,NC] 

также заметил URL без расширения файла не будет перенаправлять

ответ

0

Try это .htaccess в DocumentRoot:

Options +FollowSymlinks -MultiViews 
RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\.abc\.co\.uk$ [NC] 
RewriteRule (.*) http://www.abc.co.uk/$1 [R=302,L] 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ /$1.php [L,R=302] 
+0

Спасибо за ваш ответ. Я пробовал его с 302 и 301, и он не работает. – Gadi

+0

Ошибка, это не перенаправление. попробуйте с abc.co.uk/abc, если необходимо перенаправить на abc.co.uk/abc.php – Gadi

+0

, нам действительно нужно работать с .php. все остальное работает нормально. эта строка работает, но страница не загружается (url is) RewriteRule^(. +) \. (. *) $ http://www.abc.co.uk/$1.php [R, NC] – Gadi

0

Это, как представляется, 302 перенаправлять, которая не SEO Товарищеский. Я тестировал выше, и он не работает, также, если это интересно, что произойдет с URL-адресом, который не требует расширения .php на URL-адресе.

В основном мы пытаемся получить 301 перепрямую работу, но, похоже, она противоречит установленным правилам, которые содержат один и тот же URL-адрес. (IE abc> abc.php)

Интересно, может ли быть какой-то параметр Apache или даже и вряд ли PHP-настройка? работа 301 на любом другом Linux-сервере, который я пытаюсь сделать.

+0

Это отлично работает: Опции + FollowSymlinks Опции -MultiViews RewriteEngine на RewriteCond% {REQUEST_FILENAME} .php -f RewriteRule ^/$ /$1.php [L, R = 301] (+.?)? СПАСИБО ВАС :) – Matt