2015-06-09 4 views
2

Итак, я играл с .htaccess, и мне удалось удалить оба подкаталога, удалив подкаталог с не-www. Вы можете найти код ниже:Как удалить подкаталог с помощью rewriterule с перенаправлением не-www

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC] 
RewriteRule ^(.*) http://domain.com/$1 [R=301,L] 
RewriteCond %{REQUEST_URI} !(.*)subdir 
RewriteRule ^(.*)$ subdir/$1 [L] 

Это может переадресовать:

www.domain.com/subdir/file

или

www.domain.com/ файл

к

domain.com/file

Однако, она не может перенаправить

domain.com/subdir/file

в

domain.com/file

Это моя единственная проблема с этим кодом. Может ли кто-нибудь просветить меня, что я делаю неправильно? Буду признателен за любую оказанную помощь. :)

ответ

1

Вы можете использовать OR состояние в условиях:

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{THE_REQUEST} /subdir/ [NC] 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule ^(?:subdir/)?(.*)$ http://%1/$1 [NC,R=302,L] 
+0

Привет @anubhava, я попробовал, и это привело к ошибке слишком много переадресаций – hazelvan

+0

я тестировал на моей Apache. У вас есть другие правила и до этого? – anubhava

+0

нет. Подождите, я должен заменить% 1 в последней строке на мой домен? – hazelvan

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