Подтвердить что ты не робот

Переписать имя папки с помощью .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.

4b9b3361

Ответ 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]