Page 4 of 5
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 08, 2013 8:56 am
by sbupravi
Guro, скажите пжст - правильный синтаксис?
Нужно 301 редирект, со страницы, на страницу:
;
http://mysite.com/ru/Home/About
;
http://mysite.com/ru/o-nas.html
В .htaccess прописываю так?
Code: Select all
RewriteRule ^ru/Home/About$ http://mysite/ru/o-nas.html/ [R=301,L]
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 08, 2013 11:43 am
by guro
sbupravi wrote:правильный синтаксис?
Правильный, только без слеша в конце.
Но ещё более правильно вот так
Code: Select all
RewriteRule ^ru/Home/About(/?)$ http://anne-mariee.com/ru/o-nas.html [R=301,L]
Отлавливаем адрес и со слешем и без него.
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 08, 2013 1:13 pm
by sbupravi
guro wrote:sbupravi wrote:правильный синтаксис?
Правильный, только без слеша в конце.
Но ещё более правильно вот так
Code: Select all
RewriteRule ^ru/Home/About(/?)$ http://mysite.com/ru/o-nas.html [R=301,L]
Отлавливаем адрес и со слешем и без него.
Спасибо)
А если, старая ссылка была вот такого плана:
http://mysite.com/ru/Home/Collection?co ... nName=2012
А новая:
http://mysite.com/ru/kollekcii/2012-ru.html
Как тогда?
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 08, 2013 2:10 pm
by guro
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Fri Nov 08, 2013 6:15 pm
by sbupravi
Выдает ошибку 500!
Прописал так:
Code: Select all
RewriteRule ^ru/Home/About(/?)$ http://mysite.com/ru/o-nas.html [R=301,L]
RewriteCond %{REQUEST_URI} ^/Collection$
RewriteCond %{QUERY_STRING} ^?collectionName=2012
RewriteRule ^.*$ /ru/kollekcii/2012-ru.html? [R=301,L]
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Mon Nov 11, 2013 6:35 am
by guro
Попробуйте дописать после
это
Code: Select all
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 2:02 pm
by sbupravi
guro wrote:Попробуйте дописать после
это
Code: Select all
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
Все равно выдает ошибку 500!
Как-то проще можно сделать?
Фактически нужно заменить только 2 типа адресов:
/ru/Home/Collection?collectionName=2013
/ru/Home/About
на
"/page.html"
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 2:16 pm
by guro
Только сейчас заметил. Откуда у вас взялся знак вопроса вот здесь -
Code: Select all
RewriteCond %{QUERY_STRING} ^?collectionName=2012
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 2:53 pm
by sbupravi
guro wrote:Только сейчас заметил. Откуда у вас взялся знак вопроса вот здесь -
Code: Select all
RewriteCond %{QUERY_STRING} ^?collectionName=2012
Теперь почти все ок, спасибо!
Только при переходе по "/ru/Home/About", должно редиректить на:
http://mysite.com/ru/o-nas.html
редиректит на:
http://mysite.com/ru/o-nas.html?page=ru/Home/About
Приписывает лишние параметры в конце ссылки!
Прописал так:
Code: Select all
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
...
RewriteRule ^ru/Home/About(/?)$ http://mysite.com/ru/o-nas.html [R=301,L]
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 3:04 pm
by guro
)) А здесь, попробуйте знак вопроса поставить
Code: Select all
RewriteRule ^ru/Home/About(/?)$ http://mysite.com/ru/o-nas.html? [R=301,L]
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 3:23 pm
by sbupravi
guro wrote:)) А здесь, попробуйте знак вопроса поставить
Code: Select all
RewriteRule ^ru/Home/About(/?)$ http://mysite.com/ru/o-nas.html? [R=301,L]
Ставил - не помогло!
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 3:33 pm
by guro
Покажите весь htaccess.
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 4:15 pm
by sbupravi
guro wrote:Покажите весь 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
#php_value session.cookie_httponly true
#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]
# 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]
RewriteRule ^ru/Home/About(/?)$ http://mysite.com/ru/o-nas.html [R=301,L]
RewriteCond %{REQUEST_URI} ^/Collection$
RewriteCond %{QUERY_STRING} ^collectionName=2012
RewriteRule ^.*$ /ru/kollekcii/2012-ru.html? [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_headers.c>
# Disable ETags
Header unset ETag
FileEtag None
# For Security
Header set X-Frame-Options "SAMEORIGIN"
</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>
ExpiresActive On
ExpiresDefault "access plus 1 month"
# Set expires tags on various file types... so that the browser wont attempt to reload them.
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/ico "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType video/x-flv "access plus 1 year"
ExpiresByType application/pdf "access plus 1 year"
ExpiresByType application/x-shockwave-flash "access plus 1 year"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/css "access plug 1 month"
<IfModule mod_headers.c>
# Setting cache control to public allows proxy servers to cache the items too.
Header set Cache-Control "public"
</IfModule>
</IfModule>
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 5:31 pm
by guro
Взял ваш htaccess - всё отработало корректно. Без дописывания ?page=...
PS
Даже на вашем сайте всё корректно отрабатывает.
Re: Как сделать 301 редирект с index.php?page=name на name.h
Posted: Thu Nov 14, 2013 6:17 pm
by sbupravi
guro wrote:Взял ваш htaccess - всё отработало корректно. Без дописывания ?page=...
PS
Даже на вашем сайте всё корректно отрабатывает.
Проблемка оказалась именно на моем браузере, FF, Linux.
Чистил кэш в нем и на сайте - не помогло.... С других компьютеров, действительно - все лишнее отсекается!