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

时间:2013-04-13 08:47:06

标签: .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.

但最好不要更改地址栏中的网址。 休息可以是'news / 1 /'。

如果在.htaccess中无法实现,请指出正确的方向。

3 个答案:

答案 0 :(得分:1)

您可以在根目录下的一个.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]

答案 1 :(得分:1)

第三个解决方案

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]

答案 2 :(得分:0)

在文档根目录的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]