Вопрос

у меня проблема с перенаправлением mod_rewrite, которую я не могу понять.

все запросы из определенного домена «тихо» перезаписываются в назначенный подкаталог.например www.mydomain.net/hello.html извлекает файл в /net/hello.html.следующий .htaccess (размещен в корне моего хостинга) достигает этого отлично:

RewriteEngine on
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} 200 # <-- i will need this later. read to the end of the post.
RewriteRule .* - [L]
rewriteCond %{HTTP_HOST} ^www.mydomain.net$
rewriteCond %{REQUEST_URI} !^/net.*$
rewriteRule (.*) /net/$1 [L]

однако прямые URL-адреса в этот каталог должны явно перенаправляться с кодом 301 на URL-адрес. без этот подкаталог.например www.mydomain.net/net/hello.html следует перенаправить на www.mydomain.net/hello.html (который затем все равно извлекает файл в /net/hello.html).мой файл .htacces для этого (размещено в /net) к сожалению не работает:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^(.*) /$1 [R=301,L]    

я получаю бесконечный цикл перенаправления, несмотря на RewriteCond %{ENV:REDIRECT_STATUS} 200 заблокировать в корневом файле .htaccess...так что не так?

Кстати, мне нужно использовать mod_rewrite, потому что сайт размещен на внешнем сервере, и у меня нет доступа к конфигурациям Apache.

большое спасибо за любые указатели.

Это было полезно?

Решение

Осмотрите Строка HTTP-запроса в ЗАПРОС вместо:

RewriteCond %{THE_REQUEST} ^GET\ /net[/? ]
RewriteRule ^net($|/(.*)) /$2 [L,R=301]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top