.htaccess и вызов переписывания URL - PullRequest
1 голос
/ 01 октября 2011

Моя проблема очень проста.

У меня в корне несколько папок:

[folder1]
[folder2]
[folder3]

А мой домен выглядит примерно так: http://johndoe.net

Я держу свой веб-сайт в [folder1] , поэтому я в основном захожу на него, набирая http://johndoe.net/folder1

Моя цель такова:

Я хочу набрать http://johndoe.net и получаю содержимое http://johndoe.net/folder1, но адрес должен остаться http://johndoe.net

Я хочу набрать http://johndoe.net/folder1 и посмотреть мой веб-сайт, но мой адрес должен измениться на http://johndoe.net

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

Пока что единственное, чего я достиг, это перенаправление с http://johndoe.net на http://johndoe.net/folder1, поместив этот бит кода в мой .htaccess в корень:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^johndoe\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.johndoe\.net$
RewriteRule ^/?$ "http\:\/\/johndoe\.net\/folder1\/" [R=301,L]

Когда я набираю http://johndoe.net,, я получаю http://johndoe.net/folder1 в моей адресной строке

но мне нужен мой адрес, чтобы остаться http://johndoe.net

Может ли кто-нибудь помочь мне с этим?

Ответы [ 3 ]

0 голосов
/ 01 октября 2011

Попробуйте что-то вроде этого

RewriteRule ^(.*)$ /folder1/$1 [R=301,L]
0 голосов
/ 01 октября 2011
RewriteEngine on
RewriteCond %{HTTP_HOST} ^johndoe\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.johndoe\.net$
RewriteRule ^/?$ "\/folder1\/" [L]

вам нужно внутреннее переписывание, поэтому достаточно переписать / в /folder1/

0 голосов
/ 01 октября 2011

Для решения этой проблемы вы собираетесь использовать два файла .htaccess. Вот что вы в них вкладываете и куда они идут.

Файл № 1. Это идет в вашей базовой папке (та, которая содержит [folder1], [folder2] и т. Д.)

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^((www\.)?johndoe.net)$ 
RewriteRule ^(.*)$ /folder1/$1 [L]

Файл № 2. Это идет в [folder1]

RewriteEngine Off
...