.htaccess htaccess url重写到子目录而不更改地址栏

.htaccess htaccess url重写到子目录而不更改地址栏,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,您好,我想实现以下目标,但我不确定是否可以使用.htaccess和/或如何实现 http://domain/admin/rest should go to http://domain/backend/www/rest http://domain/rest should go to http://domain/frontend/www/rest. 但最好不更改地址栏中的url。 rest可以是类似于“news/1/”的任何内容 如果在.htaccess中无法执行此操作,请为我指出正确的方向。您可

您好,我想实现以下目标,但我不确定是否可以使用.htaccess和/或如何实现

http://domain/admin/rest should go to http://domain/backend/www/rest
http://domain/rest should go to http://domain/frontend/www/rest.
但最好不更改地址栏中的url。 rest可以是类似于“news/1/”的任何内容


如果在.htaccess中无法执行此操作,请为我指出正确的方向。

您可以在根目录下的一个.htaccess文件中尝试此操作:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI}  !/(frontend|backend) [NC]
RewriteRule ^admin/(.*)/?   /backend/www/$1      [L,NC]

RewriteCond %{REQUEST_URI}  !/(frontend|backend) [NC]
RewriteRule ^(.*)/?        /frontend/www/$1      [L,NC]

在文档根目录的htaccess文件中,尝试添加以下规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/backend
RewriteRule ^admin/(.*)$ /backend/www/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/frontend
RewriteRule ^(.*)$ /frontend/www/$1 [L]
还有第三个解决方案

RewriteEngine on

# rewrite all requests /admin/
RewriteRule ^admin/(.*)$ /backend/www/$1 [L]

# rewrite everything else
RewriteCond %{REQUEST_URI} !^/frontend/www/
RewriteCond %{REQUEST_URI} !^/backend/www/
RewriteRule ^.*$ /frontend/www/$0 [L]