2009-11-14 2 views
3

Я хочу, чтобы переместить все мои файлы вебов-сайт (даже включая index.php) в подкаталог (для ехра: «а»)каталога с помощью .htaccess

Например ДО:

public_html 
index.php 
a.file 
directory 
    an.other.file 
... 

ПОСЛЕ:

public_html 
abc_directory 
    index.php 
    a.file 
    directory 
    an.other.file 
    ... 

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

Люди должны войти «http://myexmaplesite.com/directory/an.other.file/» и .htaccess апача служить им «http://myexmaplesite.com/abc_directory/directory/an.other.file/» НО БЕЗ ВНЕШНИХ перенаправляет (301302 и т.д.)

Как я мог направить все запросы в подкаталоге с помощью mod_rewrite?

ответ

1

Попробуйте это правило mod_rewrite в корне документа:

RewriteEngine on 
RewriteRule !^directory/ directory%{REQUEST_URI} [L] 

Или вообще:

RewriteEngine on 
RewriteCond $1 !^directory/ 
RewriteRule ^/?(.*) directory/$1 [L] 

Это должно быть даже применимы в сервере или виртуального хоста конфигурации.

+0

Спасибо! :) Отлично работает. –

+0

Это сработало для меня, но только после того, как вы поместили 'RewriteCond' и' RewriteRule' в нижней части файла ПОСЛЕ всех остальных переписывающих. Просто подумал, что я упоминаю об этом. – Yeti

1

Что-то вроде

RewriteEngine On 
RewriteBase/
RewriteRule ^(.*)$ directory/$1 [L,QSA] 
+0

Я попробовал. (На самом деле я хочу перенаправить все в папку ubenzer.) Я написал RewriteRule^(. *) $ Ubenzer/$ 1 и получил 500 Internal Server Error. –

+0

Вы назвали 'RewriteEngine On' и' RewriteBase/'? – lyricat

+0

Да. И я понятия не имею, но он возобновляет, чтобы дать 500. Но решение сверху работало. Спасибо, в любом случае. :) –

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