2016-11-22 2 views
1

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

local.com/test/folder1/

Как я могу удалить каталог «испытательную» из URL, но по-прежнему включают 'folder1' через .htaccess? как это:

local.com/folder1/

любая помощь будет оценена.

ответ

1

Вы можете использовать это правило в месте корневой .htaccess:

RewriteEngine On 

# add a trailing slash if test/$1 is a directory 
RewriteCond %{DOCUMENT_ROOT}/test/$1 -d 
RewriteRule ^(.*[^/])$ %{REQUEST_URI}/ [L,R=301,NE] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(?!test/)(.*)$ test/$1 [L,NC] 

(?!test/) отрицательный предпросмотр, чтобы пропустить перезапись, когда запрос уже начиная с /test/

+0

прохладным, спасибо. Когда я набираю local.com/folder1/, он отлично работает, но когда я ввожу: local.com/folder1 он отправляется на local.com/test/folder1/ в любом случае, чтобы этого не произошло? – John

+1

Удивительный, ты гений. Спасибо! – John

+0

Последний вопрос. У меня есть local.com/test2/ как каталог, теперь он говорит, что он не найден 404. Как я могу применять только правила, которые вы написали, к ТОЛЬКО каталогу «test»? – John