Вопрос

Мне интересно, можно ли использовать .htaccess переписать имя папки.Я имею в виду вот что.

Допустим, у меня есть URL-адрес типа:

www.site.com/folder1/page.php

Теперь я хочу переписать URL-адрес (например)

www.site.com/apple/page.php

Папка1 — это существующая папка в моем веб-пространстве.

важный:«яблоко» — это не папка, а просто имя!

Хорошо, вот пошаговый план:

  1. Типы пользователей www.site.com/folder1/login.php
  2. URL-адрес следует переписать, а не перенаправлять на www.site.com/apple/login.php

Это значит, что apple это просто имя, а не каталог.Весь код должен исходить из папки1.На самом деле яблоко должно быть просто псевдонимом для folder1.Я не могу просто переименовать folder1 к Apple.Поэтому я бы просто переписал folder1 к apple.

Это было полезно?

Решение

mod_rewrite может перезаписывать/перенаправлять только запрошенные URI.Поэтому вам нужно будет запросить /apple/… чтобы переписать его в соответствующий /folder1/….

Попробуй это:

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

Это правило перезапишет каждый запрос, начинающийся с пути URI. /apple/… внутри, чтобы /folder1/….


РедактироватьПоскольку вы на самом деле ищете наоборот:

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

Это правило предназначено для совместной работы с другим правилом, указанным выше.Запросы /folder1/… будет перенаправлено на внешний адрес /apple/… и запросы /apple/… затем будет переписан внутри обратно на /folder1/….

Другие советы

пытаться:

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

Папка, которую вы хотите отобразить в URL-адресе, находится в первой части оператора — это то, с чем она будет сопоставляться, а вторая часть «перезаписывает» ее в существующую папку.флаг [NC] означает, что он будет игнорировать различия в регистре, например, Apple/ все равно будет пересылать.

См. здесь учебник: http://www.sitepoint.com/article/guide-url-rewriting/

Существует также хорошая утилита тестирования для Windows, которую можно скачать здесь:http://www.helicontech.com/download/rxtest.zip Просто отметим для тестировщика, что вам нужно исключить имя домена, чтобы проверка проводилась на /folder1/login.php.

для перенаправления из /folder1 в /apple попробуйте следующее:

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

для перенаправления, а затем перезаписи просто объедините приведенное выше в файле htaccess:

RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top