Page 3 of 5
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Wed Oct 23, 2013 12:53 pm
by MarineKosha
guro wrote:Первые два редиректа у вас работают (с www на без www, с index.php на /).
C index.php на / сегодня заработал, пожонглировали чем-то, как-то получилось. А с www до сих пор не работает, отдает 403 ошибку, редирект не делает(
За информацию про якори спасибо большое!
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Wed Oct 23, 2013 1:24 pm
by guro
Вообще-то у вас должен работать редирект с www
Вот попробуйте вот такой вариант:
Code: Select all
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]
100% рабочий.
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Wed Oct 23, 2013 1:51 pm
by MarineKosha
guro wrote:Вообще-то у вас должен работать редирект с www
Вот попробуйте вот такой вариант:
Code: Select all
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]
100% рабочий.
Простите, пожалуйста, что туплю, но код будет выглядеть вот так:
{HTTP_HOST} ^www.mysite\.ru(.+)$ [NC]
RewriteRule ^(.*) http:/mysite.ru/%1/$1 [L,R=301]
Верно? Или так:
{HTTP_HOST} ^www.mysite.ru\.(.+)$ [NC]
RewriteRule ^(.*) http:/mysite.ru/%1/$1 [L,R=301]
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Wed Oct 23, 2013 8:10 pm
by guro
MarineKosha wrote:Простите, пожалуйста, что туплю, но код будет выглядеть вот так:
Нет. Код будет выглядеть вот так
Code: Select all
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Oct 24, 2013 8:19 am
by MarineKosha
guro wrote:MarineKosha wrote:Простите, пожалуйста, что туплю, но код будет выглядеть вот так:
Нет. Код будет выглядеть вот так
Code: Select all
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]
Спасибо большое за помощь! Проблема была в удалённой ссылке htdocs.
www.mysite.ru -> htdocs, ее восстановили, и все заработало.
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 01, 2013 10:14 am
by akkord
Здравствуйте!
Что-то я запутался... проблема таже
Как сделать 301 редирект с index.php?page=
Code: Select all
# Attempt to override some php settings, these settings may be helpful on some hosts if your
# default configuration does not meet CMS's minimum requirements, and your host
# has given your account appropriate permissions
#php_value upload_max_filesize "10M"
#php_value session_save_path "tmp/cache"
#php_flag magic_quotes_gpc Off
#php_flag register_globals Off
#php_flag session.use_trans_sid Off
# (this is important, so uncomment if your host permit)
#Options -Indexes
#ServerSignature Off
#Options +FollowSymLinks
# To prevent E_STRICT problems with PHP 5.3+ you can uncomment the following lines
# Note: These settings should only be enabled for production sites!
#php_flag display_startup_errors 0
#php_flag display_errors 0
#php_flag html_errors 0
#php_value docref_root 0
#php_value docref_ext 0
<IfModule mod_rewrite.c>
RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} ^page=(.*)$
RewriteRule ^.*$ %1/? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(.*)$ index.php?page=$2&hl=$1 [QSA]
</IfModule>
<IfModule mod_header.c>
# Disable ETags
Header unset ETag
FileEtag None
</IfModule>
<IfModule mod_deflate.c>
# Compress css, plaintext, xml, gif, and images in transport.
AddOutputFilterByType DEFLATE text/css text/plain text/xml image/gif image/jpeg image/png
</IfModule>
<IfModule mod_expires.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
# Set expires tags on various files... so that the browser wont attempt to reload them.
ExpiresActive On
ExpiresDefault "access plus 1 year"
<IfModule mod_header.c>
# Setting cache control to public allowes proxy servers to cache the items too.
Header set Cache-Control "public"
</IfModule>
</FilesMatch>
</IfModule>
Что у меня может быть неправильно?
Что на что мне нужно поменять???
p.s. в конфиге - $config['url_rewriting'] = 'mod_rewrite';
Заранее благодарен!
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 01, 2013 10:48 am
by guro
Какие ответы дает сервер при обращении к index.php?page=name ?
Code: Select all
RewriteRule ^([^/]+)/(.*)$ index.php?page=$2&hl=$1 [QSA]
Для каких целей это было сделано?
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 01, 2013 10:56 am
by akkord
guro wrote:Какие ответы дает сервер при обращении к index.php?page=name ?
Code: Select all
RewriteRule ^([^/]+)/(.*)$ index.php?page=$2&hl=$1 [QSA]
Для каких целей это было сделано?
у меня все страницы с "index.php?page=name ?".
Если ссылку слеить в браузере, то без неё ответ сервера " 404 Not Found" Apache/2.2.24 Server at ......... Port 80
а по RewriteRule ^([^/]+)/(.*)$ index.php?page=$2&hl=$1 [QSA] - я сам запутался....
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 01, 2013 11:19 am
by akkord
Склейка произошла! теперь урл красивый!! Но Not Found!
Поменял
RewriteRule ^([^/]+)/(.*)$ index.php?page=$2&hl=$1 [QSA]
на
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
теперь ждёмс.
ВСЁ ЛИ Я СДЕЛАЛ ПРАВИЛЬНО?
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 01, 2013 1:14 pm
by akkord
На данный момент:
При переходе по старым ссылкам с врезкой index.php?page= всё работает. Система их отображает в том же виде без преобразовывания (вырезания).
При переходе по склееной ссылке ничего на работает!
Переходы по разделам сайта (верхнее меню и т.д.) уже происходят по склееным ссылкам НО НОТ ФАУНД!
Что я сделал не так?
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 01, 2013 1:32 pm
by guro
Вставьте вот это
Code: Select all
RewriteRule ^(.*) http://google.ru/ [R=301,L]
после
Сработает редирект.
PS
Не пишите, пожалуйста, про склейки и вырезания. Очень сложно понять из ваших слов что именно у вас происходит. И удобней писать код редиректа и ответа сервера (301, 404, 200...)
Перефразирую ваш текст.
При переходе по ссылкам index.php?page= сайт открывается, но редиректа не происходит.
При переходе по ссылке site.ru/name/ получаем 404 ответ сервера.
Я вас правильно понял?
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 01, 2013 1:41 pm
by akkord
Да. Совершенно верно!
Code: Select all
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*) [b]http://google.ru/[/b] [R=301,L]
#
#Sub-dir e.g: /cmsms
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} ^page=(.*)$
RewriteRule ^.*$ %1/? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
вот так?
Почему Гугл? (или там нужно было поставить мой сайт?)
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 01, 2013 1:44 pm
by guro
Вот так
Code: Select all
RewriteEngine on
RewriteRule ^(.*) http://google.ru/ [R=301,L]
можете поставить любой другой сайт))
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Sat Nov 02, 2013 11:23 am
by akkord
Всё сделал НО
При переходе по ссылке site.ru/name/ получаю 404 ответ сервера.
При переходе по ссылкам index.php?page= сайт открывается, но редиректа не происходит.
Вернул всё в исходное:
htaccess
Code: Select all
# Attempt to override some php settings, these settings may be helpful on some hosts if your
# default configuration does not meet CMS's minimum requirements, and your host
# has given your account appropriate permissions
#php_value upload_max_filesize "10M"
#php_value session_save_path "tmp/cache"
#php_flag magic_quotes_gpc Off
#php_flag register_globals Off
#php_flag session.use_trans_sid Off
# (this is important, so uncomment if your host permit)
#Options -Indexes
#ServerSignature Off
#Options +FollowSymLinks
# To prevent E_STRICT problems with PHP 5.3+ you can uncomment the following lines
# Note: These settings should only be enabled for production sites!
#php_flag display_startup_errors 0
#php_flag display_errors 0
#php_flag html_errors 0
#php_value docref_root 0
#php_value docref_ext 0
<IfModule mod_rewrite.c>
RewriteEngine on
#
#Sub-dir e.g: /cmsms
RewriteBase /
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# but ignore POST requests.
#RewriteCond %{REQUEST_URI} !/$
#RewriteCond %{REQUEST_URI} !\.
#RewriteCond %{REQUEST_METHOD} !POST$
#RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
<IfModule mod_header.c>
# Disable ETags
Header unset ETag
FileEtag None
</IfModule>
<IfModule mod_deflate.c>
# Compress css, plaintext, xml, gif, and images in transport.
AddOutputFilterByType DEFLATE text/css text/plain text/xml image/gif image/jpeg image/png
</IfModule>
<IfModule mod_expires.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
# Set expires tags on various files... so that the browser wont attempt to reload them.
ExpiresActive On
ExpiresDefault "access plus 1 year"
<IfModule mod_header.c>
# Setting cache control to public allowes proxy servers to cache the items too.
Header set Cache-Control "public"
</IfModule>
</FilesMatch>
</IfModule>
config
Code: Select all
<?php
# CMS Made Simple Configuration File
# Documentation: /doc/CMSMS_config_reference.pdf
#
$config['dbms'] = 'mysqli';
$config['db_hostname'] = 'localhost';
$config['db_username'] = '................';
$config['db_password'] = '.................';
$config['db_name'] = '.................';
$config['db_prefix'] = 'cms_';
$config['timezone'] = 'Europe/Moscow';
$config['locale'] = 'ru_RU.UTF-8';
?>
Как мне правильно сделать редирект с
index.php?page= на
site.ru/name/ ?
Помогите неопытному
Что и где надо исправить?

Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Tue Nov 05, 2013 9:48 am
by guro
Ещё раз повторяю.
В htaccess вставляете следующее
Code: Select all
RewriteEngine on
RewriteRule ^(.*) http://google.ru/ [R=301,L]
Заходите на сайт. Происходит редирект на гугл?