multisite és 301

dyra képe

Sziasztok kedves fórumozók!

A problémám a következő lenne. Jó pár oldalt egy közös kódbázisból szolgálok ki. A problémám is ebből adódik. A multisitében részt vevő egyik oldalt elköltöztettem egy másik domainre és szeretnék rá egy 301-es átírnyítást dobni (nem simán az egyik oldal hanem igazából a főoldal a symlinkek az ő mappájára mutatnak tehát pont ezt az oldalt nem is tudom csak úgy kikapni). A közös kódbázis miatt csak a .htaccess fájlban gondolkodom de sajnos a .htaccess fájlhoz "maki" vagyok és a neten se nagyon találtam használható infót miként is tudnám ezt megvalósítani. Minden ötletet szívesen fogadok :)

Drupal verzió: 
Fórum: 
csakiistvan képe

dyra képe

Ezt már néztem, az a gond, hogy az összes domain megy az újra. Jelen pillanat így nézek ki.

#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
  Order allow,deny
</FilesMatch>
 
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
 
# Follow symbolic links in this directory.
Options +FollowSymLinks
 
# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php
 
# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
  # There is no end quote below, for compatibility with Apache 1.3.
  ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>
 
# Set the default handler.
DirectoryIndex index.php
 
# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.
 
# PHP 4, Apache 1.
<IfModule mod_php4.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>
 
# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>
 
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>
 
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
  # Enable expirations.
  ExpiresActive On
 
  # Cache all files for 2 weeks after access (A).
  ExpiresDefault A1209600
 
  <FilesMatch \.php$>
    # Do not allow PHP scripts to be cached unless they explicitly send cache
    # headers themselves. Otherwise all scripts would have to overwrite the
    # headers set by mod_expires if they want another caching behavior. This may
    # fail if an error occurs early in the bootstrap process, and it may cause
    # problems if a non-Drupal PHP file is installed in a subdirectory.
    ExpiresActive Off
  </FilesMatch>
</IfModule>
 
# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
 
  # If your site can be accessed both with and without the 'www.' prefix, you
  # can use one of the following settings to redirect users to your preferred
  # URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
  #
  # To redirect all users to access the site WITH the 'www.' prefix,
  # (http://example.com/... will be redirected to http://www.example.com/...)
  # adapt and uncomment the following:
  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
  #
  # To redirect all users to access the site WITHOUT the 'www.' prefix,
  # (http://www.example.com/... will be redirected to http://example.com/...)
  # uncomment and adapt the following:
  # RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
  # RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
 
  # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
  # VirtualDocumentRoot and the rewrite rules are not working properly.
  # For example if your site is at http://example.com/drupal uncomment and
  # modify the following line:
  # RewriteBase /drupal
  #
  # If your site is running in a VirtualDocumentRoot at http://example.com/,
  # uncomment the following line:
  # RewriteBase /
 
    ### BOOST START ###
  AddDefaultCharset utf-8
  <FilesMatch "(\.html|\.html\.gz)$">
    <IfModule mod_headers.c>
      Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT"
      Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
    </IfModule>
  </FilesMatch>
  <IfModule mod_mime.c>
    AddCharset utf-8 .html
    AddCharset utf-8 .css
    AddCharset utf-8 .js
    AddEncoding gzip .gz
  </IfModule>
  <FilesMatch "(\.html|\.html\.gz)$">
    ForceType text/html
  </FilesMatch>
  <FilesMatch "(\.js|\.js\.gz)$">
    ForceType text/javascript
  </FilesMatch>
  <FilesMatch "(\.css|\.css\.gz)$">
    ForceType text/css
  </FilesMatch>
 
  # Gzip Cookie Test
  RewriteRule boost-gzip-cookie-test\.html  cache/perm/boost-gzip-cookie-test\.html\.gz [L,T=text/html]
 
  # GZIP - Cached css & js files
  RewriteCond %{HTTP_COOKIE} !(boost-gzip)
  RewriteCond %{HTTP:Accept-encoding} !gzip
  RewriteRule .* - [S=2]
  RewriteCond %{DOCUMENT_ROOT}/cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.css\.gz -s
  RewriteRule .* cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.css\.gz [L,QSA,T=text/css]
  RewriteCond %{DOCUMENT_ROOT}/cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.js\.gz -s
  RewriteRule .* cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.js\.gz [L,QSA,T=text/javascript]
 
  # NORMAL - Cached css & js files
  RewriteCond %{DOCUMENT_ROOT}/cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.css -s
  RewriteRule .* cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.css [L,QSA,T=text/css]
  RewriteCond %{DOCUMENT_ROOT}/cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.js -s
  RewriteRule .* cache/perm/%{SERVER_NAME}%{REQUEST_URI}_\.js [L,QSA,T=text/javascript]
 
  # Caching for anonymous users
  # Skip boost IF not get request OR uri has wrong dir OR cookie is set OR request came from this server OR https request
  RewriteCond %{REQUEST_METHOD} !^(GET|HEAD)$ [OR]
  RewriteCond %{REQUEST_URI} (^/(admin|cache|misc|modules|sites|system|openid|themes|node/add))|(/(comment/reply|edit|user|user/(login|password|register))$) [OR]
  RewriteCond %{HTTP_COOKIE} DRUPAL_UID [OR]
  RewriteCond %{HTTP:Pragma} no-cache [OR]
  RewriteCond %{HTTP:Cache-Control} no-cache [OR]
  RewriteCond %{HTTPS} on
  RewriteRule .* - [S=3]
 
  # GZIP
  RewriteCond %{HTTP_COOKIE} !(boost-gzip)
  RewriteCond %{HTTP:Accept-encoding} !gzip
  RewriteRule .* - [S=1]
  RewriteCond %{DOCUMENT_ROOT}/cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html\.gz -s
  RewriteRule .* cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html\.gz [L,T=text/html]
 
  # NORMAL
  RewriteCond %{DOCUMENT_ROOT}/cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html -s
  RewriteRule .* cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html [L,T=text/html]
 
  ### BOOST END ###
 
  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
 
# $Id$
 
# non empty HTTP_HOST in the request
        RewriteCond %{HTTP_HOST} !^$ [NC]
# the hostname does start with 'www.'
        RewriteCond %{HTTP_HOST} ^www\. [NC]
# let's extract the hostname without 'www.' and save it to %1
        RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
# let's redirect to the extracted hostname, $1 saves the URL
        RewriteRule ^(.*)$ "http://%1/$1" [L,R=301]

Ide kellene +1 sor ami csak és kizárólag egy domaint irányít át a többit meg itt hagyja. Ja és közben az eddigi beállításaim is "életben" maradnak.

0
0

honlapom http://dyra.eu/

pp képe

Valami nem lesz itt kerek (vagy én nem értem mit akarsz) A .htaccess-el olyanokat tudsz csinálni, hogy egy domain-ről másikra irányítod szerencsétlen webszervert, vagy ha nem található egy fájl akkor annak a kiszolgálását oldhatod meg vele jól(rewrite).

Ha egy domain már más könyvtárba kell, hogy mutasson akkor azt a webszerver configjában, ha más gépre/ipre akkor azt pedig a DNS beállításainál tudod elintézni.

Egyszóval mit is akarsz pontosan?

pp

1
0
dyra képe

annó csináltam egy oldalt. Utána minden egyes újabb oldalt multisitében ehhez rendeltem ha lehet így fogalmazni (mostanra 6 oldal mükszik innen). És pont a legelső oldalt akarom kivenni illetve már ki is vettem és elköltöztettem egy másik domainra és tárhelyre. Azonban nem akarok tartalom duplikálást és a régi domaint át akarom irányítani az újra. De mivel közös a .htaccess is az eddig próbált 301-es átírányítások azt eredményezték, hogy azok a domainek is mentek az új oldalra akiknek nem kellet volna.

Mondjuk azon nem gondolkodtam el, hogy a könyvtáram mindenképp megmarad a régi szolgáltató oldalán tehát ha magát a domaint el is viszem a symlinkek attól élni fognak a szerveren. Elméletben ugyanúgy működnie kell a multisitének.

Nagyon köszönöm! Én meg itt a keresem a bonyolult megoldást mikor ez tök egyszerű! Sőt így még a domain is megmaradhat akár.

0
0

honlapom http://dyra.eu/

dyra képe

Na szóval!

Domain átirányítás nem jöhetett szóba mert rengeteg aldomain is kapcsolódott az oldalhoz amiket ugye szintén költöztetnem kellet volna ha viszem a domaint.

Így csak egy megoldás maradt .htaccess hiszen csak ezen átirányítási formában vihető át az oldal link szerkezete

Ezért a .htaccess fájlba meg kellet adni feltételként a host nevet.

RewriteCond %{HTTP_HOST} ^az-oldal-host-neve\.hu$ [NC]
Rewriterule (.*) http://uj-doomain.hu/$1 [R=301,L] 

mivel előtte már www-t "lecsíptem" így minden esetben átdobja az oldalt és a multisitében jelen lévő többi oldalra semmilyen hatással nem lesz ezen kiegészítés.

Nagy segítségemre volt a következő leírás http://htaccess.petertoth.hu/

0
0

honlapom http://dyra.eu/

nemethf képe

(Az utolsó www-t lecsípő résznek helyesen az IfModule mod_rewrite.c blokkban a helye. És szerintem azon belül is a boost-os rész előtt kéne lennie.)

Ha macko.hu/sajt/kapcsolat-ból akarsz macko.sajt.hu/kapcsolat-ot csinálni úgy, hogy a macko.hu/park/ alatti site-ok maradjanak a macko.hu domain-en, akkor a következőt kell beszúrnod a RewriteEngine on után valahova:

RewriteRule ^sajt(.*) http://macko.sajt.hu/$1 [L,R=301]

erről lenne szó?

0
0