2017-02-13 28 views
5

Próbuję skrócić adres URL, ale niestety nie mogę znaleźć niczego, co mogłoby pomóc.Wytnij ścieżkę folderu z adresu URL za pośrednictwem .htaccess

Dzielę mój kod w folderach. Indeks jest umieszczony w katalogu głównym, podobnie jak mój .htaccess. Foldery są nazywane jak rozszerzeń plików, więc php, js, css [...]

mam łącze jak poniżej:

localhost/php/getBets.php 

i ma to być

localhost/getBets/ 

mam już część, która cięcia jest rozszerzenie .php na końcu, więc tutaj jest moje pełne .htacces

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/

# Hide Index 
IndexIgnore * 

# Forbid accessing certain sites 
RedirectMatch 403 ^/.gitignore$ 
RedirectMatch 403 ^/.htaccess$ 
RewriteRule ^(?!index)(?!.*getBets).*\.(php|rb|py|txt|md|sql|inc)$ - [F,L,NC] 

# Hide .php file ending in URL 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

Czy ktoś może mi powiedzieć, w jaki sposób mogę to osiągnąć? :) Dziękuję bardzo!

Odpowiedz

2

Dla wymaganego adresu URL można użyć poniżej reguły w katalogu to jest za przepisywanie,

+0

Wielkie dzięki, działa jak charme bez żadnych komplikacji. <3 –

0

Actualy Apache wciąż nie ma pathinfo ($, PATHINFO_DIRNAME), podobnie jak PHP.

Wykorzystanie% {REQUEST_URI}, jak w poniższym przykładzie:

RewriteRule ^(.+)/$ /path-dirname/$1 [R=301,L] 

może zresetować z:

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

Nie jestem pewien, co robi, ale kiedy dodaję te linie i odwiedzę localhost/getBets, odwiedzany jest następujący adres URL "http: // localhost/php/php/php/php/php/php/php/php/php/php/php/getBets " –