我的网站目录包含两个文件夹:website1
和website2
所以要访问它们:http://www.example.com/website1
http://www.example.com/website2
我想用这些url访问它们:
网站1:http://www.example.com
网站2:http://www.example.com/website2
所以我写了这个.htaccess
文件:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)$ website1/$1 [L]
这对
website1
很有效,但是如果我想访问website2
它就不起作用(因为我认为它会重定向到http://www.example.com/website1/website2
)如何仅在URL
http://www.example.com
时将此文件写入重定向? 最佳答案
您可以:
在.htaccess
中创建另一个/website2
并禁用重写引擎:
RewriteEngine Off
这将阻止父
.htaccess
中的mod_rewrite指令运行,因此请求不会被重写。或者,
修改文档根目录中的
.htaccess
文件中现有的MODYReRead指令,将请求排除到/website2
子目录中。例如:Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/website2
RewriteRule (.*) website1/$1 [L]
CondPattern上的
!
前缀否定regex,因此只有当REQUEST_URI
不以/website2
开头时,它才成功。您还可以将其合并为一个单独的指令,这样效率会稍高一些:
RewriteRule !^website2 website1%{REQUEST_URI} [L]
注意
REQUEST_URI
服务器变量已经包含斜杠前缀,因此在RewriteRule
替换中不能重复。