перепишите имя папки с помощью .htaccess

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

Позволяет говорят, что у меня есть URL как:

www.site.com/folder1/page.php

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

www.site.com/apple/page.php

folder1 является существующей папкой на моем webspace.

важный: "яблоко" не является папкой скорее просто имя!

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

  1. Пользовательские типы www.site.com/folder1/login.php
  2. URL должен переписать и не перенаправить URL к www.site.com/apple/login.php

Это означает это apple просто имя и не каталог. Весь код должен просто прибыть из folder1. Яблоко Acutally должно просто быть псевдонимом для folder1. Я не могу просто переименовать folder1 кому: Apple. Для этого я просто переписал бы folder1 кому: apple.

24
задан Mihai Iorga 26 August 2012 в 11:42
поделиться

2 ответа

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 /… .

46
ответ дан 28 November 2019 в 23:10
поделиться

try:

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

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

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

. Существует также хорошая тестовая утилита для окон, которую вы можете загрузите отсюда: 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]
5
ответ дан 28 November 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: