2013-09-24 15 views
12

Chcę zmienić URL z:jak usunąć nazwę folderu z adresu URL za pomocą htaccess

http://domain.com/Portfolios/iPhone/app 

Do:

http://domain.com/iPhone/app 

i ten sam dla wszystkich adresów URL, takich jak:

domain.com/Portfolios/iPad/app 

Do:

domain.com/iPad/app 

I od:

domain.com/Portfolios/xyz/app 

Do:

domain.com/xyz/app 

Próbowałem dużo, ale nic nie działa dla mnie, więc proszę mi pomóc.

Kiedy potrzebuję pomocy, dlaczego jakiś koleś nie głosuje, jeśli znasz odpowiedź, odpowiedz na nią.

Aktualizacja

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^Portfolios(/.*|)$ $1 [L,NC] 
</IfModule> 

Odpowiedz

22

Włącz mod_rewrite i .htaccess poprzez httpd.conf a następnie umieścić ten kod w swoim .htaccess pod DOCUMENT_ROOT katalog:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^Portfolios/(.*)$ /$1 [L,NC,R] 

Objaśnienie: powyższych zasad jest dopasowanie URL tupot, który zaczyna się od Portfolios i ma coś takiego jak /Portfolios/xyz/app i umieszcza xyz/app w $1. Tworzy zewnętrzne przekierowanie do /$1, tj. /xyz/app.

Są to flagi używane:

L - Last 
NC - Ignore (No) Case comparison 
R - External redirection (with 302) -- can be changed to R=301 
+0

gdy próbowałem RewriteRule^portfeli (/.* |) $ $ 1 [ L, NC] nie ma żadnych efektów, gdy próbowałem RewriteRule^Portfolios (/.* |) $ 1 [L, NC, R = 301] Jego przekierowanie z folderem o strukturze C:/wamp/www/project ... – anytime

+0

I próbowałem adresu URL: http://domain.com/Portfolios/iPad/app i htaccess umieszczone w katalogu głównym – anytime

+0

@anytime: Wierzę, że 'Portfolio' jest folderem bezpośrednio pod DOCUMENT_ROOT czy to prawda? – anubhava

1

Można również ustawić katalogu głównego AS/var/www/portfeli zamiast/var/www/w/etc/apache2/sites-włączona pisząc DocumentRoot linia a

DocumentRoot/var/www/portfeli

zamiast DocumentRoot/var/www/ i wsp więc ta linia < katalog/var/www /> zmienić na

< katalog/var/www/portfele />

Powiązane problemy