Просьба помочь с 301 в htaccess

sergey_pets

Создатель
Регистрация
20 Мар 2008
Сообщения
41
Реакции
1
Добрый день.

Помогите, плз, есть масса URL-ов вида

site.ru/productxxxx.html
site.ru/productxxx.html
где x-цифры

Необходимо сделать 301-й редирект на

site.ru/product/xxxx/ и
site.ru/product/xxx/ соответственно.

Заранее благодарен
 
site.ru/productxxxx.html
site.ru/productxxx.html
где x-цифры

Необходимо сделать 301-й редирект на

site.ru/product/xxxx/ и
site.ru/product/xxx/ соответственно.

Заранее благодарен

Предположим, что сайт по адресу site.ru/product/xxxx/ открывается и цифер в адресе может быть от 1 до 4 подряд.
Пробуем:
Код:
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} product[\d]{1,4}\.html
RewriteRule product([\d]{1,4})\.html /product/$1 [R=301,L]

Предположим, что сайт по адресу site.ru/product/xxxx/ НЕ открывается и цифер в адресе может быть от 1 до 4 подряд.
Пробуем:
Код:
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} product[\d]{1,4}\.html
RewriteRule product([\d]{1,4})\.html /product/$1 [R=301,L]

RewriteCond %{REQUEST_URI} product/[\d]{1,4}/$
RewriteRule product/([\d]{1,4})/$ /product$1.html [QSA,L]
 
Не работает, кажется какие-то из строк исключают друг друга

Это то, что сейчас там прописано

Код:
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

RewriteRule ^([0-9a-zA-Z]+).html$ / [QSA,NE,L]


 ErrorDocument 404 404.html

#shop
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(imgval.php|wbs_messageserserver.php) published/SC/html/scripts/$1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^(imgval.php|wbs_messageserserver.php|get_file.php) published/SC/html/scripts/$1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^shop(.*) published/SC/html/scripts/$1&frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(album|view)/(.*) photos/index.php?q=$1/$2 [L,QSA]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/fullsize/(.*)/(.*) photos/getfullsize.php?filename=$1&hash=$2 [L,QSA]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(.+)$ photos/index.php?q=$1 [L,QSA]

#common
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^login/(.*) login/index.php [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^installer/(.*) installer/index.php [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^published/$ published/index.php [L]
 
Последнее редактирование модератором:
Не работает, кажется какие-то из строк исключают друг друга

RewriteRule ^([0-9a-zA-Z]+).html$ / [QSA,NE,L]
Это правило опусти в самый низ файла. Мои правила поставь поближе к началу файла...
Как пример:
Код:
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

RewriteCond %{REQUEST_URI} product[\d]{1,4}\.html
RewriteRule product([\d]{1,4})\.html /product/$1 [R=301,L]

RewriteRule ^([0-9a-zA-Z]+).html$ / [QSA,NE,L]

ErrorDocument 404 404.html

#shop
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(imgval.php|wbs_messageserserver.php) published/SC/html/scripts/$1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^(repo_themes|js|3rdparty|images_common|products_pictures|images|themes|css)/(.*)$ published/SC/html/scripts/$1/$2?frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^(imgval.php|wbs_messageserserver.php|get_file.php) published/SC/html/scripts/$1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^shop(.*) published/SC/html/scripts/$1&frontend=1 [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(album|view)/(.*) photos/index.php?q=$1/$2 [L,QSA]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/fullsize/(.*)/(.*) photos/getfullsize.php?filename=$1&hash=$2 [L,QSA]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^photos/(.+)$ photos/index.php?q=$1 [L,QSA]

#common
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^login/(.*) login/index.php [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteRule ^installer/(.*) installer/index.php [L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule ^published/$ published/index.php [L]

PS: там точно трех и четырехзначные цифры в адресе? Или может быть любое количество символов?
 
Последнее редактирование модератором:
Огромное спасибо, работает, а то, что
RewriteRule ^([0-9a-zA-Z]+).html$ / [QSA,NE,L]
перенес ниже, мне ничего не поломает?
 
добрый день!
помогите настроить редирект
чтобы был с Для просмотра ссылки Войди или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся редиректна на подпапку Для просмотра ссылки Войди или Зарегистрируйся, но при вводе конкретной ссылки Для просмотра ссылки Войди или Зарегистрируйся ничего не происходило
 
Всем привет.

Меняю cms, c SSpremium на SS5, теперь будет присутствовать ЧПУ, в связи с этим, нужно сделать 301, планирую вручную прописать для всех категорий и товаров.

Игрался сегодня целый день, но, что-то без результатов (
были
категории - index.php?categoryID=11
товары - index.php?productID=105
будет:
категория - /category/dreli/
товар - /otvertka/

.htaccess

Options +FollowSymlinks
RewriteEngine on
rewriterule ^index.php?categoryID=11 Для просмотра ссылки Войди или Зарегистрируйся [r=301,nc]
rewriterule ^index.php?productID=105 Для просмотра ссылки Войди или Зарегистрируйся [r=301,nc]

как надо правильно?
спс
 
Последнее редактирование:
RewriteRule ^catalog/drel/ index.php?categoryID=11 [r=301,nc]
RewriteRule ^tovar-zoom-([0-9]+).html/? index.php?productID=$1 [r=301,nc]

товары ссылка из этого вида index.php?productID=105 в Для просмотра ссылки Войди или Зарегистрируйся
 
to amber128
вроде сначала надо указывать старый адрес, а потом новый, на который пересылает.

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

Если у меня пока нет этих новых страниц, меня же всё равно перенаправит по условию?
 
Назад
Сверху