Переписать имя папки с помощью .htaccess
Мне интересно, возможно ли использовать .htaccess
для перезаписи имени папки.
Я имею в виду это.
Предположим, у меня есть URL-адрес:
www.site.com/folder1/page.php
Теперь я хочу переписать URL-адрес (например)
www.site.com/apple/page.php
Папка1 - это существующая папка на моем веб-пространстве.
важно: "яблоко" - это не папка, а просто имя!
Хорошо, это шаг за шагом:
- Типы пользователей
www.site.com/folder1/login.php
- URL должен переписать и не перенаправить URL-адрес на
www.site.com/apple/login.php
Это означает, что apple
- это просто имя, а не каталог. Весь код должен быть только из папки1. Acutally apple должно быть просто псевдонимом для folder1
. Я не могу просто переименовать folder1
в apple
. Поэтому я просто переписал бы folder1
на apple
.
Ответы
Ответ 1
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/…
.
Ответ 2
попробовать:
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
Если папка, которую вы хотите отобразить в URL-адресе, находится в первой части инструкции - это то, с чем она будет соответствовать, а вторая часть переписывает ее в вашу существующую папку. флаг [NC] означает, что он будет игнорировать различия в случаях, например, Apple/будет продолжать переходить.
См. здесь учебник: http://www.sitepoint.com/article/guide-url-rewriting/
Существует также хорошая утилита для тестирования, которую вы можете скачать здесь:
http://www.helicontech.com/download/rxtest.zip
Только для того, чтобы отметить тестер, вам нужно оставить имя домена, поэтому тест будет против /folder 1/login.php
для перенаправления из /folder 1 в/apple попробуйте это:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
перенаправить, а затем переписать, просто соединить выше в файле htaccess:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]