2016-09-09 14 views
0

Ich mag würde Erweiterungen wie .php, .html, etc aus meiner URL löschen und das ist, was ich benutze:Ändern url mit .htaccess-Datei

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
RewriteRule ^([^\.]+)$ $1.html [NC,L] 

Es funktioniert, aber ich weiß nicht, ob dies ist der beste Weg, dies zu tun und ich verstehe auch nicht, wie es funktioniert, könnte jemand es erklären?

Die zweite Sache, die ich realisieren möchte, ist die URL schöner zu machen durch so etwas wie dies zu tun:

dies meine URL lautet: http://domain.com/portfolio/project.php?id=1 das ist, was ich würde gerne sehen: http://domain.com/portfolio/project/1

Vielen dank im Voraus

+0

Ist das .htaccess locat ed in 'portfolio /' Verzeichnis? – anubhava

+0

Nein in der Wurzel (http://domain.com), also auf der gleichen Ebene wie der Portfolio-Ordner –

Antwort

2

Sie diese Regeln in Site-Stamm .htaccess verwenden können:

RewriteEngine On 

# rewrite /portfolio/project/25 to /portfolio/project.php?id=25 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f 
RewriteRule ^(portfolio/[\w-]+)/([\w-]+)/?$ $1.php?id=$2 [L,QSA,NC] 

# rewrite /portfolio/project to /portfolio/project.php 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

# rewrite /portfolio/file to /portfolio/file.html 
RewriteCond %{DOCUMENT_ROOT}/$1\.html -f 
RewriteRule ^(.+?)/?$ $1.html [L] 
+0

Danke, ich werde testen, ob das funktioniert, aber können Sie auch erklären, wie das funktioniert? –

+0

Ich habe Kommentare vor jeder Regel hinzugefügt. – anubhava