我的网站目录包含两个文件夹:website1website2
所以要访问它们:
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
如何仅在URLhttp://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替换中不能重复。

09-25 16:42