Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

[Решено] Редирект при HTTP_REFERER


Recommended Posts

Добрый вечер.

Столкнулся с проблемой при выполнении следующей задачи:

мне нужно посетителя, пришедшего с определённого сайта на определённую страницу, перенаправлять на нужную мне страницу.

 

Имеем следующую строчки, которые не пашут, хотя, вроде бы, всё логично:

RewriteCond %{HTTP_REFERER} ^http://(www\.)?site\.ru [NC] 
RewriteRule ^/medical-products/ /vitamins/ [L,R]

 

Ниже верхняя часть .htaccess

 

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Require all denied
## For apache 2.2 and older, replace "Require all denied" with these two lines :
# Order deny,allow
# Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

RewriteCond %{HTTP_REFERER} ^http://(www\.)?site\.ru [NC] 
RewriteRule ^/medical-products/ /vitamins/ [L,R]

Заранее спасибо...

Edited by KegP
Link to post
Share on other sites

Вроде

RewriteRule ^medical\-products/$ /vitamins/? [L,R=301]

 

Edited by vise
Link to post
Share on other sites

7 минут назад, vise сказал:

Вроде


RewriteRule ^medical\-products/$ /vitamins/? [L,R=301]

 

Пробовал и так - кидает на /medical-products/

Link to post
Share on other sites

4 минуты назад, chukcha сказал:

Потому что такое правило должны быть "ранним"

То есть, его нужно поставить сразу после RewriteBase?

А структура остальных редиректов не пострадает?

Edited by KegP
Link to post
Share on other sites

А так да, спасибо - заработало...

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By mseb99
      Кто-нибудь знает, как сделать авторизованный доступ по логину и паролю к динамическому адресу (url) ocStore с помощью файла .htaccess?
      Например, такого типа: https://site.com/index.php?route=account/login.
      Нахожу только способы сделать авторизацию на папку (директорию) или файл.
       
      Для авторизованного доступа в папку (директорию) необходимо создать файл .htpasswd с логином и паролем в формате user:password (в целях безопасности пароли лучше зашифровать, например, с помощью специальных сервисов генерации записей, например, такого) и отдельный файл .htaccess в корне папки, которую нужно запаролить, следующего содержания:
      <files название_шифруемого_файла.разширение_шифруемого_файла=””> AuthType Basic AuthName “” AuthUserFile /путь_до_файла/с_логином_и_паролем/от_корня_сервера/.htpasswd Require valid-user </files>  
      Для запароливания файла, также необходимо создать файл .htpasswd с логином и паролем в формате user:password, как описано выше, а в основной файл .htaccess (в корне сайта) добавить следующие строки:
      resides AuthType Basic AuthName “Для доступа в эту директорию требуется авторизация. Введите логин и пароль.” AuthUserFile /путь_до_файла/с_логином_и_паролем/от_корня_сервера/.htpasswd AuthGroupFile /dev/null Require valid-user
      Для запароливания адреса (url) решения не могу найти...
      Заранее спасибо.
    • By mironanpe
      Подскажите файл .htaccess ставит код для блокировки индексации. Яндекс.Вебмастер пишет ошибку 403. Я меняю .htaccess, а через какое то время все возвращается. В чем может быть проблема?
       
      # 1.To use URL Alias you need to be running apache with mod_rewrite enabled.
      # 2. In your opencart directory rename htaccess.txt to .htaccess.
      # For any support issues please visit: http://www.opencart.com
      Options +FollowSymlinks
      # Prevent Directory listing
      Options -Indexes
      # Prevent Direct Access to files
      <FilesMatch "(?i)((\.tpl|.twig|\.ini|\.log|(?<!robots)\.txt))">
       Require all denied
      ## For apache 2.2 and older, replace "Require all denied" with these two lines :
      # Order deny,allow
      # Deny from all
      </FilesMatch>
      # SEO URL Settings
      RewriteEngine On
      # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
      RewriteBase /
      RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
      RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
      RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
      RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
      ### Additional Settings that may need to be enabled for some servers
      ### Uncomment the commands by removing the # sign in front of it.
      ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.
      # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
      # php_flag register_globals off
      # 2. If your cart has magic quotes enabled, This may work to disable it:
      # php_flag magic_quotes_gpc Off
      # 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
      # php_value upload_max_filesize 999M
      # 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
      # php_value post_max_size 999M
      # 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
      # php_value max_execution_time 200
      # 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
      # php_value max_input_time 200
      # 7. disable open_basedir limitations
      # php_admin_value open_basedir none

      SetEnvIfNoCase User-Agent "^Yandex" search_bot
      SetEnvIfNoCase User-Agent "^Yahoo" search_bot
      SetEnvIfNoCase User-Agent "^Googlebot" search_bot
      SetEnvIfNoCase User-Agent "^Aport" search_bot
      SetEnvIfNoCase User-Agent "^msnbot" search_bot
      SetEnvIfNoCase User-Agent "^spider" search_bot
      SetEnvIfNoCase User-Agent "^Robot" search_bot
      SetEnvIfNoCase User-Agent "^php" search_bot
      SetEnvIfNoCase User-Agent "^Mail" search_bot
      SetEnvIfNoCase User-Agent "^bot" search_bot
      SetEnvIfNoCase User-Agent "bot" search_bot
      SetEnvIfNoCase User-Agent "^igdeSpyder" search_bot
      SetEnvIfNoCase User-Agent "^Snapbot" search_bot
      SetEnvIfNoCase User-Agent "^WordPress" search_bot
      SetEnvIfNoCase User-Agent "^BlogPulseLive" search_bot
      SetEnvIfNoCase User-Agent "^Parser" search_bot
      SetEnvIfNoCase User-Agent "^Googlebot-Image" search_bot
      SetEnvIfNoCase User-Agent "^StackRambler" search_bot
      SetEnvIfNoCase User-Agent "^Adsbot-Google" search_bot
      SetEnvIfNoCase User-Agent "^WebAlta" search_bot
      SetEnvIfNoCase User-Agent "^Googlebot-Mobile" search_bot
      SetEnvIfNoCase User-Agent "^YandexImages" search_bot
      SetEnvIfNoCase User-Agent "http://www.google.com/bot.html" search_bot
      <FilesMatch "^.*$">
      Order Allow,Deny
      Allow from all
      Deny from env=search_bot
      </FilesMatch>
       
    • By Symon81
      Здравствуйте уважаемые форумчане!
      Столкнулся с проблемой, переход с http:// на https://
      Тоесть при https://мой_домен.ру работает, а при https://www.мой_домен.ру выдает ошибку 500
      Так же появилась проблема с ЧПУ и SEO PRO - включаешь ЧПУ и больше нет страниц после главной, отключаешь все работает, но страницы с id и ииндексами
      уже не первый форум читаю, переделывал .htaccess много раз, но все тщетно:
      в домене стоят записи
      @ A XXXXXX
      www A XXXXXX
      В апаче выставил AllowOverride - чтобы читался .htaccess
      Может кто в курсе как и что поправить, напишите мне пожалуйста
      Вот сам файл .htaccess
      AllowOverride All Options +FollowSymlinks #Options +SymLinksIfOwnerMatch # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">  Require all denied </FilesMatch> # SEO URL Settings RewriteEngine on RewriteBase / RewriteCond %{HTTP:PORT} !^443$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R] RewriteCond %{HTTP_HOST} ^www.fixmed\.ru$ [NC] RewriteRule ^(.*)$ https://fixmed.ru/$1 [R=301,L] RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L] RewriteRule ^system/download/(.*) index.php?route=error/not_found [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] ExpiresActive On ExpiresDefault "access plus 1 hour" AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript  
    • By AndySparrow
      Добрый день.
      Делаем мультимагазин. Создали поддомен и появилась проблема: все ссылки с поддомена ведут на основной домен.
      Таким образом, при нажатии на любой товар на поддомене загружается этот товар на основном домене.
      Подскажите, пожалуйста, что делать?
    • By Gusev
      Всем доброго воскресного дня
       
      Решил прогнать сайт через NetPeak Spider на наличие пробелов в работе сайта, битых ссылок и тд. В ответ он выдает критическую ошибку редиректа с http на https, по https ответ NULL.
      Сайт доступен, при прогоне на ответ сервера в вебмастере отвечает что все гут, с Джет Кешем время 260 сек. Не могу понять в чем проблема. Возможно неверно настроен .htaccess? Прошу опытных коллег помочь, ибо в php и настройках серверов не силен.
       
      Ниже привожу текст .htaccess
       
      ServerSignature Off
      # 1.To use URL Alias you need to be running apache with mod_rewrite enabled.
      # 2. In your opencart directory rename htaccess.txt to .htaccess.
      # For any support issues please visit: http://www.opencart.com
      Options +FollowSymlinks
      # Prevent Directoy listing
      Options -Indexes
      # Prevent Direct Access to files
      <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
       Require all denied
      ## For apache 2.2 and older, replace "Require all denied" with these two lines :
      # Order deny,allow
      # Deny from all
      </FilesMatch>
      # SEO URL Settings
      RewriteEngine On
      # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
      RewriteBase /
      RewriteCond %{THE_REQUEST} //
      RewriteRule .* /$0 [R=301,L]
      RewriteCond %{SERVER_PORT} !^443$
      RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
      RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
      RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
      RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
      RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
      RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
      #RewriteRule ^page/([^/\.]+)/?$ page=$1 [L]
      RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
      RewriteCond %{REQUEST_URI} ^(.*[^/])//+(.*)$
      RewriteRule . %1 [R=301,L]

      ### Additional Settings that may need to be enabled for some servers
      ### Uncomment the commands by removing the # sign in front of it.
      ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.
      # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
      # php_flag register_globals off
      # 2. If your cart has magic quotes enabled, This may work to disable it:
      # php_flag magic_quotes_gpc Off
      # 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
      # php_value upload_max_filesize 999M
      # 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
      # php_value post_max_size 999M
      # 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
      # php_value max_execution_time 200
      # 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
      # php_value max_input_time 200
      php_value memory_limit 250M
      # 7. disable open_basedir limitations
      # php_admin_value open_basedir none
      ### Display PHP errors
      ### Uncomment the commands by removing the # sign in front of it.
      # php_flag display_startup_errors on
      # php_flag display_errors on
      # php_flag html_errors on
      # php_flag track_errors on
      # php_value error_reporting "E_ALL"
      ### Сжать ответ сервера для перечисленных MIME типов
      #<ifModule mod_deflate.c>
      #  <IfModule mod_filter.c>
      #      AddOutputFilterByType DEFLATE text/plain text/html
      #      AddOutputFilterByType DEFLATE text/css
      #      AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
      #      AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/rss+xml
      #      AddOutputFilterByType DEFLATE application/json
      #      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon
      #  </ifModule>
      #</ifModule>

      <IfModule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/xml
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE application/x-javascript
      </IfModule>
      ### Способ #1
      ### Подсказать браузеру схему кеширования через заголовки в ответе сервера
      <ifModule mod_headers.c>
          # 43200 - день, 604800 - неделя, 2592000 - месяц
          <FilesMatch "\.(html|js|css)$">
          Header set Cache-Control "max-age=2592000"
              #Header unset Last-Modified
          </FilesMatch>
          <Files *.txt>
          Header add Cache-Control "max-age=43200"
          </Files>
          <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
          Header set Cache-Control "max-age=2592000"
          </FilesMatch>
          <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
          # отключить кэширование
          Header unset Cache-Control
          </FilesMatch>
      </IfModule>
      ### Способ #2
      ### Подсказать браузеру схему кеширования через заголовки в ответе сервера
      <IfModule mod_expires.c>
          # Enable expires
          ExpiresActive On
          # Default a cache expiration
          ExpiresDefault "access plus 10 month"
          # Images
          ExpiresByType image/gif                 "access plus 1 month"
          ExpiresByType image/png                 "access plus 1 month"
          ExpiresByType image/jpg                 "access plus 1 month"
          ExpiresByType image/jpeg                "access plus 1 month"
          # CSS, JavaScript
          ExpiresByType text/css                  "access plus 1 year"
          ExpiresByType application/javascript    "access plus 1 year"
          ExpiresByType text/javascript           "access plus 1 year"
      </IfModule>

      ### Удалить заголовок ETag (иначе есть проблемы с кешированием при включенном сжатии)
      <IfModule mod_headers.c>
          Header unset ETag
      </IfModule>
      FileETag None
       
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.