2017-02-28 4 views
1

Ich habe eine sehr einfache Anforderung..htaccess mit php GET

Alle .php Erweiterung entfernt und meine GET-Request-URL werden muss, sollte

http://domain.com/product.php?name=<product_name> 

http://domain.com/product/<product_name> 

Ich habe folgendes versucht werden:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^home/?$ index.php [NC,L] 
RewriteRule ^product/([A-Za-z]+)/?$ product.php?name=$1 [L] 

RewriteRule ^([^\.]+)$ $1.php 
RewriteRule ^([^\.]+)$ $1.html [NC,L] 

Wenn ich dies tun alle .php & .html Erweiterungen werden entfernt, aber die GET Seite css und js bricht

dies auch versucht:

RewriteRule ^([A-Za-z]+)/?$ product.php?name=$1 [L] 

Dann wird die Endung .php gezeigt wird, oder es geht auf die Seite GET-Anfrage.

Ich bin neu bei .htaccess. Zerbrich mir jetzt den Kopf!

+0

Geben Sie die vollständige URL für js und css auf Ihrer Get-Seite an. – Ruby

+0

Ja, ich denke über die Verwendung von * *. Das funktioniert! Aber weiß nicht, ob es das Richtige ist! – Ashwin

Antwort

0

Versuchen Sie Folgendes:

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks -MultiViews 
    # Turn mod_rewrite on 
    RewriteEngine On 
    RewriteBase/

    ## If the request is for a valid directory 
    RewriteCond %{REQUEST_FILENAME} -d [OR] 
    ## If the request is for a valid file 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    ## If the request is for a valid link 
    RewriteCond %{REQUEST_FILENAME} -l 
    ## don't do anything 
    RewriteRule^- [L] 

    # if requested files exists in /public then forward it there 
    RewriteCond %{DOCUMENT_ROOT}/public/$1 -f 
    RewriteRule ^(.+?)/?$ /public/$1 [L] 

    # if requested files doesn't exist in /public then forward it to requested php file 
    RewriteCond %{DOCUMENT_ROOT}/$1 !-f 
    RewriteRule ^(.+?)/?$ %{REQUEST_FILENAME}.php [L] 
</IfModule> 
+0

Versuchte die erste Portion von ur-Code für/public - funktioniert nicht – Ashwin

0

Verwenden Sie diese in Ihrer .htaccess Datei:

RewriteEngine On 
RewriteRule ^product/([^/]*)$ /product.php?name=$1 [L] 

Stellen Sie sicher, löschen Sie den Cache, bevor diese Prüfung, sollte es Ihnen mit der URL verlassen: http://domain.com/product/<product_name>.

+0

CSS/JS/img's Pause! – Ashwin