htaccess remove subdirectory from url

为君一笑 提交于 2019-12-13 04:01:57

问题


I have read multiple threads based on this subject but none of the rules have worked so i'm sure i m doing something wrong.

I have the following struncture in my /var/www

main domain folders that redirects to domain.com
folder1 that redirects to domain1.com
folder2 that redirects to domain2.com

Inside folder2 i have 3 more subdirectories

folder2/subdirectory1
folder2/subdirectory2
folder2/subdirectory3

These should redirect to:

www.domain2.com/subdirectory1
www.domain2.com/subdirectory2
www.domain2.com/subdirectory3

but instead of that it also shows the folder2 in the url so it's listing

www.domain2.com/folder2/subdirectory1
www.domain2.com/folder2/subdirectory2
www.domain2.com/folder2/subdirectory3

I have two .htaccess: one inside the root folder and one inside folder2

htaccess from root folder

Options +FollowSymLinks 
RewriteEngine On
RewriteBase /

ReWriteCond %{HTTP_HOST} domain1.com
ReWriteCond %{REQUEST_URI} !folder1/
ReWriteRule ^(.*)$ folder1/$1 [L] 

ReWriteCond %{HTTP_HOST} domain2.com
ReWriteCond %{REQUEST_URI} !folder2/
ReWriteRule ^(.*)$ folder2/$1 [L]

htaccess from folder2

RewriteEngine On
RewriteBase / 

ReWriteCond %{HTTP_HOST} domain2.com/subdirectory1
ReWriteCond %{REQUEST_URI} !subdirectory1/
ReWriteRule ^(.*)$ subdirectory1/$1 [L] 

ReWriteCond %{HTTP_HOST} domain2.com/subdirectory2
ReWriteCond %{REQUEST_URI} !subdirectory2/
ReWriteRule ^(.*)$ subdirectory2/$1 [L] 

ReWriteCond %{HTTP_HOST} domain2.com/subdirectory3
ReWriteCond %{REQUEST_URI} !subdirectory3/
ReWriteRule ^(.*)$ subdirectory3/$1 [L]

Hopefully i can finally fix this problem


回答1:


I think you should use a redirect tag [R] into folder2 .htaccess RewriteRule.

This way:

RewriteEngine On
RewriteBase / 

ReWriteCond %{HTTP_HOST} domain2.com/subdirectory1
ReWriteCond %{REQUEST_URI} !subdirectory1/
ReWriteRule ^(.*)$ subdirectory1/$1 [R] 

ReWriteCond %{HTTP_HOST} domain2.com/subdirectory2
ReWriteCond %{REQUEST_URI} !subdirectory2/
ReWriteRule ^(.*)$ subdirectory2/$1 [R] 

ReWriteCond %{HTTP_HOST} domain2.com/subdirectory3
ReWriteCond %{REQUEST_URI} !subdirectory3/
ReWriteRule ^(.*)$ subdirectory3/$1 [R]


来源:https://stackoverflow.com/questions/11172630/htaccess-remove-subdirectory-from-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!