2010-04-11 3 views
8

Я думаю, что это довольно простой вопрос.Модификация Изменить скрытую папку

Как вы переписываете Apache, чтобы скрыть папку.

EX: www.website.com/pages/login.php в www.website.com/login.php

или www.website.com/pages/home.php в www.website.com/ home.php

Папка должна быть всегда скрыта. спасибо

ответ

12

Я предполагаю, что вы хотите, чтобы браузер запрашивал /home.php, но сервер фактически использовал файл, расположенный по адресу /pages/home.php, правильно? Если это так, это должно работать:

Убедитесь, что установлен модуль apache mod_rewrite. Затем, используя что-то вроде этого в вашем апаче конфигурации, виртуальные конфигурации хоста или (менее желательно) файл .htaccess:

RewriteEngine On 
RewriteRule ^/(.*)$ /pages/$1 

Правила использование регулярных выражений, так что вы можете захотеть взглянуть на ссылке на эту тему, если вы не уверены. Прочтите manual для получения дополнительной информации о других директивах (RewriteCond может быть очень полезен) или правила.

0

Если ваш пример фактически отражает файлы вам нужно, то в файле .htaccess:

#Options +FollowSymLinks 
RewriteEngine On 

RewriteRule ^/pages/(.+)\.php $1\.php [NC, L] 

Кроме того, если каталог имеет разрешение на чтение, оно не может быть, в действительности «скрытый». Я предполагаю, что вы имеете в виду, что он больше не появляется в URL-адресе.

+1

Это то, что у меня было сначала. Но это означает, что пользователь увидит /pages/home.php в адресной строке, а сервер будет обслуживать /home.php. После переосмысления я думаю, что OP хочет противоположного ... – grossvogel

+0

@grossvogel - вы правы - я более внимательно перечитаю его вопрос. – TMG

8

Я знаю, что исходный пост был от пары лет назад, но он появился в первую очередь в поисковой системе, поэтому, возможно, это поможет другим людям скрыть имя папки в URL-адресе.

Не совсем то, что хотел оригинальный плакат, но по тем же линиям.

RewriteCond %{HTTP_HOST} ^mydomainname\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.mydomainname\.com$ 
RewriteCond %{REQUEST_URI} !^/subfoldername/ 
RewriteRule (.*) /subfoldername/$1 

Приведенный выше пример будет перенаправить запрос на mydomainname.com или www.mydomainname.com в каталог subfoldername в корневой директории для домена, и имя папки не будет отображаться в URL.

Смежные вопросы