2016-06-08 21 views
0

Hallo Ich frage mich, ob Sie mir mit einer bestimmten htaccess-Datei helfen können.htaccess Multilevel Permalinks?

index#?city=antwerpen sollte sich /antwerpen

detailfeest#?city=antwerpen&id=123456789/antwerpen/123456789

Auch www zwingen werden sollte, Dateierweiterungen zu entfernen und Schrägstriche Hinter. Kann jemand diesen Code vervollkommnen?

Options +FollowSymLinks 
RewriteEngine On 

RewriteBase/

# Force WWW prefix 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} ^([^.]+)\.([a-z]{2,4})$ [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 


# Remove .php extension 
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php 
RewriteRule (.*)\.php$ /$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/(.+)/$ 
RewriteCond %{DOCUMENT_ROOT}/%1.php -f 
RewriteRule ^(.*)/$ $1.php [L] 

# Remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

# Css, js, img paths + pretty links 
RewriteCond %{REQUEST_FILENAME} !/(admin|css|fonts|img|js|mail)/ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]*)(.*)$ index#?city=$1 
RewriteRule ^([^/]*)(.*)$ detailfeest#?city=$1&id=$2 
RewriteRule ^(.+)/(admin|css|fonts|img|js|mail)/(.*)$ $2/$3 [L] 

---- ---- EDIT

ich herausgefunden, wie die relativen Pfade zu zwingen - danke, Stack-Überlauf zu helfen mir zu verstehen, diese ein wenig mehr. Für zukünftige Referenz, I found this question particularly helpful.

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !(admin|css|fonts|img|js|mail).+$ 
RewriteRule ^(.*)/(admin|css|fonts|img|js|mail)/(.*)$ $2/$3 [L] 


RewriteRule ^index/([a-z]+) index.php?city=$1 
RewriteRule ^detailfeest/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+) detailfeest.php? city=$1&id=$2 
RewriteRule ^detailclub-organisatie/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+) detailclub-organisatie.php?city=$1&id=$2&club_id=$3 

Antwort

1

den abschließenden Schrägstrich Gebrauch zu entfernen:

RewriteEngine on 
RewriteRule (.+)/$ /example/$1 [L,R=301] 

Wenn in einem Verzeichnis Verwendung zu finden:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (.+)/$ 
RewriteRule^%1 [R=301,L] 

Um WWW Verwendung zu erzwingen:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com[nc] 
RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc] 

http://index#?city=antwerpen zu http://index/antwerpen

RewriteEngine On 
RewriteRule ^([^/]*)\.html$ #?city=$1 [L] 

http://detailfeest#?city=antwerpen&id=123456789 zu http://detailfeest/antwerpen/123456789

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)\.html$ #?city=$1&id=$2 [L] 
+0

Wollen Sie wissen, warum diese Verbindungen miteinander sind vermasselt: 'RewriteRule^detailfeest/([az] +)/([a-z0-9 \ -] +) detailfeest.php? city ​​= $ 1 & id = $ 2 RewriteRule^detailclub-organisation/([az] +)/([a-z0-9 \ -] +)/([a-z0-9 \ -] +) detailclub-organisatie.php ? city = $ 1 & id = $ 2 & club_id = $ 3' –

+0

gelöst mit Basis-Tag –

Verwandte Themen