以下是我的网站网址结构,如下所示:http://www.sitename.com/new/about-us。
我现在真正想要做的是从上面的网址中隐藏目录名称“new”,但管理网址应保持不变。
管理员网址如下:http://www.sitename.com/new/admin。
我以前的.htaccess代码如下:
RewriteEngine On
RewriteBase /new/
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/new/$1 [R=301,L]
RewriteRule blog/ - [L]
RewriteRule (^wlp) - [L]
RewriteRule admin/ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %(REQUEST_FILENAME} !-d
RewriteRule ^([\S\s/+.]+)/?$ index.php?url=$1 [QSA,L]
这是我的服务器目录结构:
/public
/new
.htaccess
index.php
about-us.php
/blog
/admin
在这方面的任何帮助将受到高度赞赏。
答案 0 :(得分:3)
听起来你想要完成的是common technique,我之前看到过将所有 public_html 请求转发给 public_html / public 从用户隐藏 public_html 目录的内容,并使 public_html / public 成为新的Web根目录。
尝试在public_html/.htaccess
文件中使用此功能(您可以在 public_html / new / .htaccess 中进一步编写htaccess):
RewriteEngine on
RewriteBase /
#enforce www subdomain
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^sitename.com [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#forward all requests, except new/admin, to the 'new' directory without the user's awareness
RewriteRule new/admin - [S=2]
RewriteRule ^$ new/ [L]
RewriteRule (.*) new/$1 [L]
答案 1 :(得分:0)
这个.htaccess在/应该这样做:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^new/
RewriteRule ^(.*)$ new/$1 [L]