2014-01-07 6 views
0

Я не могу понять, почему мои перенаправления не работают так, как они находятся в другом файле htaccess.Перенаправить всю директорию с htaccess

Я пытаюсь перенаправить старые URL-адреса на новые.


RewriteEngine on 
AddDefaultCharset UTF-8 

DirectoryIndex index.php index.html 
<IfModule mod_php.c> 
php_flag magic_quotes_gpc off 
</IfModule> 

RewriteCond %{REQUEST_URI} ^system.* 
RewriteRule (.*)$ index.php?/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 

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

Redirect /private_3 http://website.com/new_private 

Я пробовал все виды вещей, которые я нашел в Интернете, но ничего не работает.

Пожалуйста, помогите.

Спасибо.

+0

Какой URL-адрес не перенаправляется? – anubhava

+2

Если вы задаете вопрос, пожалуйста, всегда будьте предельно ясным *, что не работает *. «ничего не работает» никогда не является хорошим описанием проблемы. В этом случае: вы получаете сообщение об ошибке? Вы получаете белый экран? Не перенаправлен браузер? Переадресовано ли оно на неправильный URL? Также будет полезно указать, какие URL-адреса вы пытались и каков результат при вводе этих URL-адресов, где находится этот '.htaccess' (относительно www-корня вашего сайта), и если вы протестировали, если mod_rewrite фактически включен ('' RewriteRule^foo $/bar [R, L] 'перенаправляет вас?). Что это за другой файл .htaccess, о котором вы говорите? – Sumurai8

ответ

0

Вместо этого:

Redirect /private_3 http://website.com/new_private 

Попробуйте добавить этот прямо под RewriteEngine on линии:

RewriteRule ^private_3(.*)$ http://website.com/new_private$1 [L,R=301] 
0

Выглядит плохо упорядоченность и смешивание mod_alias с mod_rewrite может быть проблема. Попробуйте переупорядочить свои правила следующим образом:

AddDefaultCharset UTF-8 

DirectoryIndex index.php index.html 
<IfModule mod_php.c> 
    php_flag magic_quotes_gpc off 
</IfModule> 
RewriteEngine on 

RewriteRule ^private_3 http://website.com/new_private [L,R=301,NC] 

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

RewriteRule ^(system.*)$ index.php?/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 
Смежные вопросы