2016-03-25 22 views
3

.php nasıl kaldırılır benim ilk Php çözümü oluşturuldu ancak sorun URL'den .php uzantısı kaldırarak sahibiz. Kökte çalışır, ancak alt klasörlerde değil?uzantı yanlısı bir yol

www.domain.com/index (veya www.domain.com/)

Sonra zor olur örn www.domain.com/index.php ulaşmıştır. Örneğin

. www.domain.com/en/europe/bikes/racer-bike.phpwww.domain.com/en/bikes/ and on index.php

Benim .htaccess dosyası biten olmadan www.domain.com/en/bikes/racer-bike farklı olmayacaktır şuna benzer:

Options -MultiViews 
RewriteEngine on 
RewriteBase/

# Remove .php-extension from url 
RewriteCond %{REQUEST_URI} ^/(.*).php$ 
RewriteRule ^(.*)$ %1 [L,QSA] 

# Add trailing slash to url 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$ 
RewriteRule ^(.*)$ $1/ [R=301,L] 

# SSL 
RewriteCond %{HTTP_HOST} ^domain.com$ 
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301] 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R=301,QSA] 

cevap

1

yapmak için bazı çerçeve kullanabilir ve çalışır:

/ 
index.php 
/sub 
    file.php 

Ve htaccess böyle My dirs yapısı:

RewriteEngine On 
RewriteBase/

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

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ([A-Za-z]+)/(.*)$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/%1 -d 
RewriteRule ^([A-Za-z]+)/(.*)$ $1/$2.php [NC,L,QSA] 

deneyin
-1

Sen Çoğunlukla (rota her uri için php dosyalarını yapmazlar ... yanlış yapıyoruz). Eğer index.php için tüm uri sitesine yönlendirmek ve her isteği yerine nasıl tanımlamak için bazı yönlendirici kullanmalıdır php uzantısını kaldırmak olmamalıdır. ya da sadece ben Deneyin böyle laravel veya Symfony vb