Unterverzeichnis für Joomla weglassen

Eines der wichtigsten Anwendungsgebiete von mod_rewrite ist das umschreiben von dynamischen in statische URLs um "suchmaschinenfreundliche URLs" zu erzeugen. Aber was ist besser fürs Ranking? http://www.url.com/12_2.htm, http://www.url.com/url,12,2.htm oder doch lieber http://www.url.com/12/2/url/ Fragen zum URL-Design werden hier diskutiert.

Moderator: Super-Mod

Unterverzeichnis für Joomla weglassen

Beitragvon Tobias1980 » 25.09.2009 09:51

Hallo ich brauche euere Hilfe.

Ich habe für mein Joomla ein extra Verzeichnis angelegt,
da ich im root noch andere Verzeichnisse liegen habe und dies nicht vermischen wollte.

Im Root liegt eine index.php die in das Unterverzeichnis von Joomla weiterleitet

Code: Alles auswählen
<?php
header("Location: http://www.domain.de/start");
header("Status: 302");


nun wird aber im browser immer

www.domain.de/start/
www.domain.de/start/news
www.domain.de/start/bilder
usw. angezeigt.

ich möchte aber das das start entfällt
www.domain.de/
www.domain.de/news
www.domain.de/bilder
usw. angezeigt.

ich habe schon vieles versucht aber keine Lösung dafür gefunden.

Meine htaccess im Joomla-Verzeichnis sieht wie folgt aus

Könnt ihr mir sagen wo ich was einfügen muss,
damit dies funktioniert.

Links wie
www.domain.de/album
müssten weiterhin in den Unterordner album gehen.
Da ich parallel zu Joomla noch ein PHP Album habe.

Ich möchte nur das start entferen.

Ist dies möglich?

Danke


Code: Alles auswählen
##
# @version $Id: htaccess.txt 10492 2008-07-02 06:38:28Z ircmaxell $
# @package Joomla
# @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##


#####################################################
#  READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
#
#####################################################

##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

#
#  mod_rewrite in use

RewriteEngine On

RewriteCond %{THE_REQUEST} index\.php
RewriteRule ^(.*)index\.php/(.*) http://www.domain.de/start/$2 [L,R=301]


########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)

 RewriteBase /start/


########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

Tobias1980
.
.
 
Beiträge: 5
Registriert: 25.09.2009 08:30

Beitragvon Gumbo » 25.09.2009 10:34

Hier eine Regel, mit der alle Anfragen zu „/start/…“ umgeschrieben werden:
Code: Alles auswählen
RewriteRule !^start/ start%{REQUEST_URI} [L]
Den Rest musst du in Joomla einstellen.
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon Tobias1980 » 25.09.2009 13:35

Damit werden aber alle Anfragen umgeschrieben,
somit geht

www.domain.de/album

was auf den Ordner album geht nicht mehr.
Tobias1980
.
.
 
Beiträge: 5
Registriert: 25.09.2009 08:30

Beitragvon Tobias1980 » 25.09.2009 14:25

Ok ich denke ich habe hierfür ne Lösung

#RewriteRule !^album|mysqldump|seiten|sitemaps|status|transfer|start/ start%{REQUEST_URI} [L]

aber wie bekomme ich es hin, das wenn jemand noch einen Link auf

www.domain.de/start/xxxx hat dieser auf www.domain.de umgleitet wird.
Tobias1980
.
.
 
Beiträge: 5
Registriert: 25.09.2009 08:30

Beitragvon Gumbo » 25.09.2009 14:28

Code: Alles auswählen
RewriteCond %{THE_REQUEST} ^GET\ /start/
RewriteRule ^start/(.*) /$1 [L,R=301]
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon Tobias1980 » 25.09.2009 14:50

Erstmal danke für die Hilfe - aber es geht leider nicht

Ich habe folgenden Code

Code: Alles auswählen
RewriteEngine On


# start entferen, wenn noch jemand alten link gespeichert hat
  RewriteCond %{THE_REQUEST} ^GET\ /start/
  RewriteRule ^start/(.*) /$1 [L,R=301]

# www einfügen
  RewriteCond %{HTTP_HOST} ^domain\.de$ [NC]
  RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301,L]

# Bestimmte Verzeichnisse (album|mysqldump|seiten|sitemaps|status|transfer|start/) nicht umleiten
# alle anderen Anfragen nach start umleiten
  RewriteRule !^album|mysqldump|seiten|sitemaps|status|transfer|start/ start%{REQUEST_URI} [L]



bei eingabe von www.domain.de/start --> kommt leider 404 fehler und im Browser bleibt das start stehen.

alles andere geht
Tobias1980
.
.
 
Beiträge: 5
Registriert: 25.09.2009 08:30

Beitragvon Tobias1980 » 25.09.2009 20:30

Ich habe die Lösung

Code: Alles auswählen

# altes start in cms verschoben und nun alle start auf cms umschreiben
  RewriteRule ^start(.*) http://www.domain.de$1 [L,R=301]

# www einfügen
  RewriteCond %{HTTP_HOST} !^www.domain\.de$ [NC]
  RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]

# index.php entfernen - wenn danach /
  RewriteRule ^(.*)index\.php/(.*) http://www.domain.de/$2 [L,R=301]

# Bestimmte Verzeichnisse (album|mysqldump|seiten|sitemaps|status|transfer|cms|start) nicht umleiten
#  alle anderen Anfragen nach cms umleiten
  RewriteRule !^album|mysqldump|seiten|sitemaps|status|transfer|cms|start cms%{REQUEST_URI} [L]

Tobias1980
.
.
 
Beiträge: 5
Registriert: 25.09.2009 08:30

Beitragvon reh » 02.11.2009 09:59

Hallo,

habe ein ganz ähnliches Problem:

Projekt in dir, dir soll aber in Webadresse nicht angezeigt werden. Es gibt mehrere Domains, die alle auf www.domain.de zeigen sollen. Funktioniert auch soweit. Allerdings sollen Aufrufe von www.domain.de/dir nicht beantwortet, sondern per 301 nach www.domain.de geschickt werden.

Habe eine .htaccess in /dir/ und eine in /.

in / steht:
Code: Alles auswählen
   RewriteCond %{REQUEST_URI} ^dir
   RewriteRule ^dir/(.*) http://www.domain.de%{REQUEST_URI} [L,R=301]
 
   RewriteCond %{HTTP_HOST} !^www.domain.de
   RewriteRule ^ http://www.domain.de%{REQUEST_URI} [R=301]
   
   RewriteCond %{REQUEST_URI} !^dir/
   RewriteRule ^ dir%{REQUEST_URI}


Die ersten 2 Zeilen scheinen nie zu greifen. Bin mir nicht sicher, ob die Datei in / benutzt wird, wenn im Pfad bereits /dir/ steht, aber auch verschiedene Versuche in dir funktionieren nicht, z.B.

Code: Alles auswählen
RewriteCond %{REQUEST_URI} ^dir
RewriteRule ^dir(.*) $1[R=301]

RewriteBase /raco/
...


Habe bereits versch. Varionten mit Cond und Rule und THE_REQUEST probiert :-(

Es befinden sich versch. Links mit /dir/ im Web und ich möchte keinen doppelten Content haben, aber auch keine toton Links.

Bin für allle Tipps dankbar!
reh
.
.
 
Beiträge: 3
Registriert: 02.11.2009 09:32

Beitragvon reh » 05.11.2009 22:12

Wird bei Aufruf von www.domain.de/dir die .htaccess in www.domain.de nicht ausgeführt, wenn es in www.domain.de/dir auch eine gibt?



--
mfg reh
reh
.
.
 
Beiträge: 3
Registriert: 02.11.2009 09:32


Zurück zu URL-Design

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron