Ergebnis 1 bis 24 von 24

Thema: [One Page Website] Problem mit mod rewrite

  1. #1
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard [One Page Website] Problem mit mod rewrite

    Hallo - danke für die tolle Erweiterung. Installation hat nach dem entknoten der Gehirnwindungen gut funktioniert.
    Auch habe ich schon den Thread mit den angepassten Templates für die Navigation und der opw_default gefunden.

    Ich möchte keine Dateiendung verwenden also statt service.html oder service.php einfach nur service
    Mit der Navi sollte dann eigentlich doch folgender Link enstehen service#gesundheit jedoch sieht der nun so aus /#gesundheit/service

    Oh mann ich hasse das kauderwelsch in der .htaccess

    Es ist im Prinzip die Default
    Im Backend ist URL Suffix leer
    Bei URL umschreiben ein Haken
    Code:
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
    
      ##
      # Uncomment the following lines to add "www." to the domain:
      #
      #   RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
      #   RewriteRule (.*) http://www.example.com/$1 [R=301,L]
      #
      # Uncomment the following lines to remove "www." from the domain:
      #
      #   RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
      #   RewriteRule (.*) http://example.com/$1 [R=301,L]
      #
      # Make sure to replace "example.com" with your domain name.
      ##
    
      ##
      # If you cannot use mod_deflate, uncomment the following lines to load a
      # compressed .gz version of the aggregated Contao JavaScript and CSS files.
      ##
      #AddEncoding gzip .gz
      #<FilesMatch "\.js\.gz$">
      #  AddType "application/javascript" .gz
      #</FilesMatch>
      #<FilesMatch "\.css\.gz$">
      #  AddType "text/css" .gz
      #</FilesMatch>
      #RewriteCond %{HTTP:Accept-encoding} gzip
      #RewriteCond %{REQUEST_FILENAME} \.(js|css)$
      #RewriteCond %{REQUEST_FILENAME}.gz -f
      #RewriteRule ^(.*)$ $1.gz [QSA,L]
    
    
      <FilesMatch "\.(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|woff|svg|svgz|ttf|pdf|gz)$">
        RewriteEngine Off
      </FilesMatch>
    
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule .* index.php [L]
      #
      # If you are using mod_cache, it is recommended to use the RewriteRule below,
      # which adds the query string to the internal URL:
      #
      #   RewriteRule (.*\.html)$ index.php/$1 [L]
      #
      # Note that not all environments support mod_rewrite and mod_cache.
      ##
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule .*\.html$ index.php [L]
    
      ##
      # The following rules are required if you want to pass the language as first
      # URL parameter (added in Contao 2.11). The first rule rewrites the empty URL
      # to the front end controller, the second one adds a missing trailing slash.
      ##
      RewriteRule ^[a-z]{2}(\-[A-Z]{2})?/$ index.php [L]
      RewriteRule ^([a-z]{2}(\-[A-Z]{2})?)$ $1/ [R=301,L]
    
    </IfModule>

  2. #2
    Contao-Urgestein
    Registriert seit
    10.07.2010.
    Beiträge
    4.403
    User beschenken
    Wunschliste

    Standard

    Das Wichtigste hast Du uns unterschlagen:

    Zitat Zitat von Beispiele
    ##
    # By default, Contao adds ".html" to the generated URLs to simulate static
    # HTML documents. If you change the URL suffix in the back end settings, make
    # sure to change it here accordingly!
    #
    # RewriteRule .*\.html$ index.php [L] # URL suffix .html
    # RewriteRule .*\.txt$ index.php [L] # URL suffix .txt
    # RewriteRule .*\.json$ index.php [L] # URL suffix .json
    #
    # If you do not want to use an URL suffix at all, you have to add a second
    # line to prevent URLs that point to folders from being rewritten (see #4031).
    #
    # RewriteCond %{REQUEST_FILENAME} !-d
    # RewriteRule .* index.php [L]
    Zitat Zitat von Deine .htaccess
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* index.php [L]
    #
    # If you are using mod_cache, it is recommended to use the RewriteRule below,
    # which adds the query string to the internal URL:
    #
    # RewriteRule (.*\.html)$ index.php/$1 [L]
    #
    # Note that not all environments support mod_rewrite and mod_cache.
    ##
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .*\.html$ index.php [L]
    Von den Beispielen (den grünen Teil), mit den zwei Zeilen von Deiner .htaccess (rot markiert) bitte ersetzen. Bitte ohne die ' # ' (raute).

  3. #3
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    Ich weiß nicht woran es liegt aber eventuell nicht an der .htacess

    In der Seitenverwaltung sind Alias automatisch eingetragen worden nach dem Schema service/gesundheit anstatt nur gesundheit
    Die Navigation erzeugt Links die so aussehen: http://www.example.de/#service/gesundheit
    Mein Kopf raucht so langsam......

  4. #4
    Contao-Urgestein
    Registriert seit
    10.07.2010.
    Beiträge
    4.403
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Rudolpho
    Ich weiß nicht woran es liegt aber eventuell nicht an der .htacess
    Wie kommst denn darauf, ohne es zu testen? Hast Du eine Glaskugel?
    In den Beispielen wird genau gesagt was man anpassen muss damit es ohne alias geht. Wenn Du dass nicht zuerst einstellst kannst lange suchen bis es richtig funktioniert.

    Zudem solltest es auch mal ohne die Navigations templates testen. Vielleicht spielen die auch noch eine Rolle.

    Am Besten machst die Änderung in der .htaccess wie oben angezeigt und testest dies indem mal eine Seite unter dem Seitenbaum erstellst ohne opw seitenlayout ... sondern mit einem normalen. Dann kannst auch erkennen ob es an der Erweiterung liegt.


    In der .htaccess ist in der ersten markierten Zeile das

    !-f anders >> !-d
    und
    \.html$ zuviel!

  5. #5
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    Zitat Zitat von ciaobello Beitrag anzeigen
    Wie kommst denn darauf, ohne es zu testen? Hast Du eine Glaskugel?

    Danke erstmal das Du Dir die Mühe machst mir überhaupt zu antworten - ich wünschte ich hätte eine Glaskugel.

    Die .htaccess ist die Originale Version wie sie im Core ist. Die einzige Zeile die ich verändert habe ist die vorher auskommentierte Zeile mit Ohne Dateiendung usw.
    Code:
      ##
      # By default, Contao adds ".html" to the generated URLs to simulate static
      # HTML documents. If you change the URL suffix in the back end settings, make
      # sure to change it here accordingly!
      #
      #   RewriteRule .*\.html$ index.php [L]   # URL suffix .html
      #   RewriteRule .*\.txt$ index.php [L]    # URL suffix .txt
      #   RewriteRule .*\.json$ index.php [L]   # URL suffix .json
      #
      # If you do not want to use an URL suffix at all, you have to add a second
      # line to prevent URLs that point to folders from being rewritten (see #4031).
      #
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule .* index.php [L]
      #
      # If you are using mod_cache, it is recommended to use the RewriteRule below,
      # which adds the query string to the internal URL:
      #
      #   RewriteRule (.*\.html)$ index.php/$1 [L]
      #
      # Note that not all environments support mod_rewrite and mod_cache.
      ##
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule .* index.php [L]
    
      ##
      # The following rules are required if you want to pass the language as first
      # URL parameter (added in Contao 2.11). The first rule rewrites the empty URL
      # to the front end controller, the second one adds a missing trailing slash.
      ##
      RewriteRule ^[a-z]{2}(\-[A-Z]{2})?/$ index.php [L]
      RewriteRule ^([a-z]{2}(\-[A-Z]{2})?)$ $1/ [R=301,L]
    
    </IfModule>
    Vielleicht steh ich mordsmäßig auf dem Schlauch.....
    Ich schick mal einen Link mit der Seite zum anschauen.

  6. #6
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    Das scheint genau mein problem zu sein
    https://community.contao.org/de/show...in-Unterseiten

  7. #7
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von dr.house
    Zur Info, in der neuesten Version auf Github ist das Problem behoben.
    Hast du denn die neueste Version von Github verwendet? Ansonsten werden solche Aliase eigentlich dann erzeugt, wenn Ordner-URLs aktiviert sind im Backend. Da dies aber im anderen Thread nirgends erwähnt wird, mag das in diesem Fall von der Erweiterung kommen.

  8. #8
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    Ordner URl sind nicht aktiv
    Ich hab die master oder auch Dev Version aus dem Github runtergeladen jedoch ist die Dateistruktur anders als im installierten Verzeichnis.
    Wie mache ich das richtig?

  9. #9
    Contao-Urgestein
    Registriert seit
    10.07.2010.
    Beiträge
    4.403
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von tab
    Da dies aber im anderen Thread nirgends erwähnt wird, mag das in diesem Fall von der Erweiterung kommen.
    Ich habe es mit dieser Demo nachgestellt und konnte kein Problem sehen. Abgesehen von der Darstellung welche ich aber mit CSS nicht angepasst habe geht es.

    Apropos, @Rudolpho es scheint dass Du dass Falsche Navigations_Modul verwendest. In der nachgestellten Demo erscheinen meine Seiten nicht im Menu. Ich muss also die Links von Hand in den Header bauen oder mit der CustomNav nachstellen.

    Hier mal meinen Seitenbaum wo es klappt:

    Zitat Zitat von Rodolpho
    Wie mache ich das richtig?
    Die Demo analysieren und anhand der Demo die Seite bauen. Du siehst ja was ich oben zur Demo geschrieben habe.

    Apropos ... in der .htaccess nicht zweimal einfügen ... entweder mit oder ohne mod_cache ... genau gucken!
    Angehängte Grafiken Angehängte Grafiken
    Geändert von ciaobello (17.03.2014 um 17:59 Uhr)

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    @Rudolpho: gibt es die Seite irgendwo online? Wie sieht deine Seitenstruktur momentan aus?

  11. #11
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    Anbei die Seitenstruktur.

    Viel ist noch nicht gemacht deswegen nur die Struktur aber alles noch in Rohfassung ohne CSS


    Service und die Taler Unterseite sollen dann One Pages sein.


    PS: Wie mache ich das richtig bezog sich auf das installieren der Github Version
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Rudolpho (17.03.2014 um 22:22 Uhr)

  12. #12
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    Zitat Zitat von ciaobello Beitrag anzeigen

    Apropos ... in der .htaccess nicht zweimal einfügen ... entweder mit [COLOR=#3e3e3e]oder ohne mod_cache ... genau gucken!
    hab ich geändert danke. ändert aber nix

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Ich glaube für eine solche Seitenstruktur musst du auf die aktuelle Version von Github aktualisieren. In der Version aus dem ER gibt es evt. ein Problem, wenn die Navigationsweiterleitungsseite nicht die Startseite des jeweiligen Seitenbaumes ist, kurz gesagt (darum ging es in dieser längeren Diskussion, im Prinzip). Das Problem sieht man auch auf deiner Website.

    Die Version auf Github unterscheidet sich allerdings schon etwas stärker von der Version im ER. Ich denke am saubersten ist, du löschst nochmal alle OPW Module, deinstallierst die Extension und holst dir die aktuelle von Github und legst die Module nochmal neu an. Dazu auf Github einfach bspw. auf "Downlad ZIP" gehen. Extrahier den "system" Ordner in diesem Archiv dann einfach in das Root Verzeichnis der Contao Installation.

  14. #14
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    danke das ist etwas womit ich arbeiten kann...

  15. #15
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    Alles Neu aufgelegt und soweit funktioniert zumindest auch der Scroll wieder ....
    Aber sobald ich die Templates aus dem Anleitungs Thread benutze werden die Links wieder falsch geschrieben

    /rudolf-taler#page22

    mit Templates für Aliase statt ID

    /#spenden
    Geändert von Rudolpho (17.03.2014 um 22:20 Uhr)

  16. #16
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Welcher Thread/Post ist genau gemeint bzw. wie sieht das Template nun genau aus?

  17. #17
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    https://community.contao.org/de/show...l=1#post281900

    Habe die Dateien etwas umbenannt nav_default_op z.B. und in den Template Ordner hochgeladen und im Modul eingebunden, danach gehts nicht mehr.

  18. #18
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    nav_default_op
    Code:
    <ul class="<?php echo $this->level; ?>"> 
    <?php foreach ($this->items as $item): ?> 
    <?php 
    $item['href'] = '#'.$item['alias']; 
    ?> 
    <?php if ($item['isActive']): ?> 
    <li class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><span class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><?php echo $item['link']; ?></span><?php echo $item['subitems']; ?></li> 
    <?php else: ?> 
    <li<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?>><a href="<?php echo $item['href']; ?>" title="<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?><?php echo $item['target']; ?>><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li> 
    <?php endif; ?> 
    <?php endforeach; ?> 
    </ul>
    opw_default_op
    Code:
    <ul class="<?php echo $this->level; ?>"> 
    <?php foreach($this->entries as $page): ?> 
    <?php 
    $alias = $page['row']['alias']; 
    $page['cssId'] = 'id="'.$alias.'"'; 
    ?> 
    <li <?php echo $page['cssId']; ?> class="<?php echo $page['class']; ?> <?php echo $alias; ?>"> 
    <div class="wrapper"> 
    <?php foreach($page['content'] as $section => $contents): ?> 
        <div class="<?php echo $section; ?> block"> 
            <?php foreach($contents as $content): ?> 
                <?php echo $content['html']; ?> 
            <?php endforeach; ?> 
        </div> 
    <?php endforeach; ?> 
    </div> 
    <?php echo $page['subpages']; ?> 
    </li> 
    
    <?php endforeach; ?> 
    </ul>

  19. #19
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Generell gilt: da du jetzt auf einer viel neueren Version bist, kannst du dich nicht darauf verlassen, dass bspw. Templates älterer Versionen (bzw. aus Anleitungen älterer Versionen) noch funktionieren.


    Zitat Zitat von Rudolpho Beitrag anzeigen
    nav_default_op
    Code:
    <ul class="<?php echo $this->level; ?>"> 
    <?php foreach ($this->items as $item): ?> 
    <?php 
    $item['href'] = '#'.$item['alias']; 
    ?> 
    <?php if ($item['isActive']): ?> 
    <li class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><span class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><?php echo $item['link']; ?></span><?php echo $item['subitems']; ?></li> 
    <?php else: ?> 
    <li<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?>><a href="<?php echo $item['href']; ?>" title="<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?><?php echo $item['target']; ?>><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li> 
    <?php endif; ?> 
    <?php endforeach; ?> 
    </ul>
    Dieses Template kannst du nun nicht mehr einsetzen, in diesem Template wird der href nämlich mit
    PHP-Code:
    $item['href'] = '#'.$item['alias']; 
    überschrieben. Warum genau brauchst du diese Templates und nimmst nicht die Originale?
    Geändert von Spooky (17.03.2014 um 21:44 Uhr)

  20. #20
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    ich möchte den Anker als Alias und nicht als ID der Seite

  21. #21
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Ok, dann musst du dein nav_default_op so machen:
    PHP-Code:
    <ul class="<?php echo $this->level?>">
      <?php foreach ($this->items as $item): ?>
      <?php $item['href'] = '{{env::request}}#'.$item['alias']; ?> 
        <?php if ($item['isActive']): ?>
          <li class="<?php echo $item['class']; ?>"><span class="<?php echo $item['class']; ?>"><?php echo $item['link']; ?></span><?php echo $item['subitems']; ?></li>
        <?php else: ?>
          <li<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?>><a href="<?php echo $item['href']; ?>" title="<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?><?php echo $item['target']; ?>><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
        <?php endif; ?>
      <?php endforeach; ?>
    </ul>
    Also zusätzlich noch ein {{env::request}} vor dem #. Das funktioniert in deinem Fall, weil deine OPW Navigation sowieso nur sichtbar ist, wenn man sich bereits auf der OPW Seite befindet. Sollte das bei dir irgendwo mal nicht mehr so sein, also sollte die OPW Navigation auch mal von einer anderen Seite aus sichtbar sein, funktionieren diese Links dann nicht mehr.

    Das alte, alternative opw_default Template solltest du weiterhin benutzen können.

    Unabhängig davon könntest du die (optionale) Benutzung des page alias als anchor (statt der id) auch als feature request auf Github vorschlagen.

  22. #22
    Contao-Nutzer
    Registriert seit
    28.08.2009.
    Beiträge
    135

    Standard

    Problem gelöst!

    Wenn Dir mal wieder solche penetranten Frager wie ich Kopfschmerzen bereiten schick mir ne PM dann gibt´s per Post eine Packung Kopfschmerz-Lösungen

  23. #23
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Hehe ok . Eigentlich hätten wir diese Lösung auch ohne der neuesten Version von Github machen können, aber schadet sicher nicht.
    Geändert von Spooky (18.03.2014 um 09:27 Uhr)

  24. #24
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Was laut HTML nicht geht sind Anker mit Sonderzeichen, wie hier der Schrägstrich.
    Wenn Du den Seitenalias über Schrägstriche in ordnerähnliche Strukturen ändern möchtest, dann musst du entweder den Alias im OPW Template von den Schrägstrichen bereinigen, oder ein anderes eindeutiges Feld für die Anker nehmen, oder (mein Favorit) nutze die realUrl Erweiterung von Andreas. Dann muss man sich damit nicht mehr rumärgern.
    Wichtig: Wofür man sich auch entscheided, der Anker muss eineindeutig sein.

    Das Bereinigen sollte so aussehen, in beiden Templates.

    $item['alias'] = standardize($item['alias']);
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •