przepisz nazwę folderu używając.htaccess

Zastanawiam się, czy możliwe jest użycie .htaccess do przepisania nazwy folderu. Chodzi mi o to.

Powiedzmy, że mam adres URL:

www.site.com/folder1/page.php

Teraz chcę przepisać adres url do (na przykład)

www.site.com/apple/page.php

Folder1 jest istniejącym folderem w mojej przestrzeni Web.

Ważne: "apple" nie jest folderem, a tylko nazwą!

Ok oto plan krok po kroku:

  1. typy użytkowników www.site.com/folder1/login.php
  2. url powinien przepisywać a nie przekierowanie adresu url do www.site.com/apple/login.php

Oznacza to, że apple jest tylko nazwą, a nie katalogiem. Cały kod powinien pochodzić z folder1. Acutally apple powinno być tylko aliasem dla folder1. Nie mogę zmienić nazwy folder1 na Apple. Dlatego po prostu przepisałbym folder1 na apple.

Author: Mihai Iorga, 2009-08-12

2 answers

Mod_rewrite może tylko przepisać / przekierować żądane Uri. Musisz więc poprosić /apple/… o przepisanie go na odpowiedni /folder1/….

Spróbuj tego:

RewriteEngine on
RewriteRule ^apple/(.*) folder1/$1

Ta reguła zmieni każde żądanie, które zaczyna się od ścieżki URI /apple/… wewnętrznie na /folder1/….


Edit jak faktycznie szukasz odwrotnie:

RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301]

Ta reguła jest zaprojektowana do współpracy z innymi powyższymi regułami. Żądania /folder1/… zostaną przekierowane zewnętrznie do /apple/…, A żądania /apple/… będą następnie przepisywane wewnętrznie z powrotem do /folder1/….

 36
Author: Gumbo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-12 09:05:47

Try:

RewriteRule ^/apple(.*)?$ /folder1$1 [NC]

Gdzie folder, który chcesz wyświetlić w adresie url, znajduje się w pierwszej części instrukcji - to jest to, z czym będzie pasował, a druga część "przepisuje" go do istniejącego folderu. flaga [NC] oznacza, że zignoruje różnice wielkości liter, np. Apple / będzie nadal do przodu.

Zobacz tutorial: http://www.sitepoint.com/article/guide-url-rewriting/

Istnieje również ładne narzędzie testowe dla systemu windows, które można pobrać z proszę.: http://www.helicontech.com/download/rxtest.zip dla przypomnienia dla testera należy pominąć nazwę domeny - więc test byłby przeciwko / folder1 / login.php

Aby przekierować z / folder1 do / apple spróbuj tego:

RewriteRule ^/folder1(.*)?$ /apple$1 [R]

Aby przekierować, a następnie przepisać wystarczy połączyć powyższe w pliku htaccess:

RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
 5
Author: Josh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-12 08:47:51