Как сделать 301 редирект с index.php?page=name на name.htm ?

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm
Location: Adler

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post 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]
Last edited by sbupravi on Fri Nov 08, 2013 1:13 pm, edited 1 time in total.
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by guro »

sbupravi wrote:правильный синтаксис?
Правильный, только без слеша в конце.
Но ещё более правильно вот так

Code: Select all

RewriteRule ^ru/Home/About(/?)$ http://anne-mariee.com/ru/o-nas.html [R=301,L]
Отлавливаем адрес и со слешем и без него.
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm
Location: Adler

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post 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
Как тогда?
Last edited by sbupravi on Fri Nov 08, 2013 6:15 pm, edited 1 time in total.
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by guro »

User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm
Location: Adler

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post 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]
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by guro »

Попробуйте дописать после

Code: Select all

RewriteBase /
это

Code: Select all

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm
Location: Adler

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by sbupravi »

guro wrote:Попробуйте дописать после

Code: Select all

RewriteBase /
это

Code: Select all

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
Все равно выдает ошибку 500!
Как-то проще можно сделать?
Фактически нужно заменить только 2 типа адресов:
/ru/Home/Collection?collectionName=2013
/ru/Home/About
на
"/page.html"
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by guro »

Только сейчас заметил. Откуда у вас взялся знак вопроса вот здесь -

Code: Select all

RewriteCond %{QUERY_STRING} ^?collectionName=2012
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm
Location: Adler

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post 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]
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by guro »

)) А здесь, попробуйте знак вопроса поставить

Code: Select all

RewriteRule ^ru/Home/About(/?)$ http://mysite.com/ru/o-nas.html? [R=301,L]
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm
Location: Adler

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by sbupravi »

guro wrote:)) А здесь, попробуйте знак вопроса поставить

Code: Select all

RewriteRule ^ru/Home/About(/?)$ http://mysite.com/ru/o-nas.html? [R=301,L]
Ставил - не помогло!
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by guro »

Покажите весь htaccess.
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm
Location: Adler

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post 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>
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm
Location: Ramenskoe

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by guro »

Взял ваш htaccess - всё отработало корректно. Без дописывания ?page=...

PS
Даже на вашем сайте всё корректно отрабатывает.
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm
Location: Adler

Re: Как сделать 301 редирект с index.php?page=name на name.h

Post by sbupravi »

guro wrote:Взял ваш htaccess - всё отработало корректно. Без дописывания ?page=...

PS
Даже на вашем сайте всё корректно отрабатывает.
Проблемка оказалась именно на моем браузере, FF, Linux.
Чистил кэш в нем и на сайте - не помогло.... С других компьютеров, действительно - все лишнее отсекается!
Locked

Return to “Russian - русский”