2014-12-19 38 views
5

Chcę przepisać mój URLprzepisywanie URL bez zmiany URL .htaccess

Od:

https://example.com/fr/transporter/transporterPublicProfile.php?profil=1927 

Do:

https://example.com/fr/profil-des-transporteurs/1927 

Gdy kiedykolwiek wizyta użytkownik ten adres URL :

https://example.com/fr/transporter/transporterPublicProfile.php?profil=1927 

To powinno wyglądać tak:

https://example.com/fr/profil-des-transporteurs/1927 

A jeśli wizytą użytkownika Ten adres URL:

https://example.com/fr/profil-des-transporteurs/1927 

ITS powinny pozostać bez zmian.

Co próbowałem tak daleko jest:

RewriteRule ^profil-des-transporteurs/(.*)$ /fr/transporter/profil.php?oid=$1 [L] 

To zmienia adres URL, jak chcę, ale problemem jest to, że linki na tej stronie nie działa prawidłowo. Strona korzysta ścieżek względnych dla obrazów itp wrt nowego URL IE:

https://example.com/fr/profil-des-transporteurs/ 
+1

Umieść '[R = 301, L]' na końcu. – hjpotter92

+0

Zmienia adres URL, a także przekierowuje całkowicie pod nowy adres URL – StormTrooper

Odpowiedz

3

Można użyć tego Kod w pliku DOCUMENT_ROOT/.htaccess:

RewriteEngine On 
RewriteBase/

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+fr/transporter/transporterPublicProfile\.php\?profil=([^\s&]+) [NC] 
RewriteRule^fr/profil-des-transporteurs/%1? [R=302,L,NE] 

# internal forward from pretty URL to actual one 
RewriteRule ^fr/profil-des-transporteurs/([^/.]+)/?$ fr/transporter/transporterPublicProfile.php?profile=$1 [L,QSA,NC] 

Następnie rozwiązywania linki względne używane do obrazów/js/css ścieżek można dodać to w sekcji <head> HTML Twojej strony:

<base href="/fr/transporter/" /> 
+0

dlaczego w DOCUMENT_ROOT mogę umieścić plik htaccess na folderze "fr"? –

+0

proszę mi powiedzieć, jakiego rodzaju dostosowania wymagane w powyższych reguł htaccess, jeśli prawdziwy katalog jest fr? Chcę umieścić mój plik htaccess w podkatalogu "fr". –

+0

Nie mogę zmienić tej odpowiedzi jako odpowiedzi na komentarz, lepiej utwórz nowe pytanie, aby móc wysłać odpowiedź. – anubhava

2

Można użyć tagu bazowej w html, więc wszystkie ścieżki będzie w stosunku do niego

<base href="https://example.com/fr/transporter/"> 
+0

Aby uzyskać więcej informacji, [ta odpowiedź] (https://stackoverflow.com/questions/1889076/is-it-recommended-to-use-the-base-html -tag) powinien okazać się przydatny. – kero

+0

Po dodaniu Base Tag wypróbowałem ten URL: https://example.com/fr/profil-des-transporteurs/1927 Wyglądało to tak: https://example.com /fr/transporter/transporterPublicProfile.php Naprawdę rozwiązał problem z moją ścieżką obrazów, ale URL był taki sam jak oryginalny – StormTrooper