2016-07-25 18 views
3

Dies ist, was mein .htaccess Datei wie folgt aussieht:.htaccess Umleitung ordentlich URL

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule .* - [L] 

#removes trailing slash if not a directory 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)/$ /$1 [R=301,L] 

#adds ".php" to a URL that isn't a directory or a file 
RewriteCond %{REQUEST_URI} !(\.[^./]+)$ 
RewriteCond %{REQUEST_fileNAME} !-d 
RewriteCond %{REQUEST_fileNAME} !-f 
RewriteRule (.*) $1.php [L] 

Obwohl es mir die URL ohne .php für beispielsweise am Ende zugreifen kann example.com/sign-up Es ist umleiten mir nicht example.com/sign-up.php-example.com/sign-up

Gibt es einen Code, den ich zu dieser Datei hinzufügen kann, um das zu erreichen?

würde Einsicht Diese

Antwort

1

Ich kann das nicht beantworten in den Kommentaren dies als eine Antwort so schreibt:

RewriteEngine On 

# remove PHP from root level requests 
RewriteCond %{THE_REQUEST} \.php[\s?] [NC] 
RewriteRule ^([^/]+)\.php$ /$1 [R=302,NE,L,NC] 

# To internally redirect /foo to /foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^/]+)/?$ $1.php [L] 
2

Versuchen sehr hilfreich sein:

RewriteEngine On 

# browser requests PHP 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php 
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301] 

# check to see if the request is for a PHP file: 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^/?(.*)$ /$1.php [L] 
+0

Wow! Das ist fantastisch! Vielen Dank! –

+0

Auch Wie leite ich aus: http://example.com/?slug=hey-there zu: http://example.com/hey-there Bitte helfen @ Ansuman-chauhan –

+0

Gibt es eine Möglichkeit durch die ich diese Umleitung nur auf Root-Ebene beschränken kann, zB: example.com/sing.php sollte auf example.com/sing umgeleitet werden , aber das sollte nicht mit example.com/data/sync.php geschehen. Irgendwelche Ideen @anubhava Danke für Ihre Zeit! –