Php htaccess重写规则,不更改URL

Php htaccess重写规则,不更改URL,php,apache,.htaccess,redirect,Php,Apache,.htaccess,Redirect,我有个问题,希望你能帮我解决 -我有多个域在寻找同一个IP。 -我在htaccess中制定了重写规则,但它们将URL更改为: website1.nl/website1/index.php -根看起来像 -web -website1 -index.php -website2 -index.php -如果我把index.php放在根目录(map:web)中,我会得到一个干净的URL 只有“website1.com”,没有

我有个问题,希望你能帮我解决

-我有多个域在寻找同一个IP。 -我在htaccess中制定了重写规则,但它们将URL更改为:
website1.nl/website1/index.php -根看起来像

    -web
       -website1
          -index.php
       -website2
           -index.php
-如果我把index.php放在根目录(map:web)中,我会得到一个干净的URL 只有“website1.com”,没有index.php

这是我的问题: 在不更改URL的情况下,如何更改此为htaccess

我走到这一步,但不起作用的是:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?website1\.com$ [NC]
RewriteRule ^(.*)$ website1/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^(www\.)?website2\.com$ [NC]
RewriteRule ^(.*)$ website2/$1 [R=301,L]

我希望有人能帮助我????

您可以在root.htaccess中使用以下两条规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?website1\.com$ [NC]
RewriteRule ^((?!website1/).*)$ website1/$1 [NC,L]

RewriteCond %{HTTP_HOST} ^(www\.)?website2\.com$ [NC]
RewriteRule ^((?!website1/).*)$ website2/$1 [NC,L]

为什么不应该呢
R=301
正在强制客户端重定向到新的url。我现在真的不知道。。。谷歌给出了答案,我仍然得到了URL后面的子目录,比如:wibsite1.com/website1/index.php。。。我想要的是重定向,一个像website1.com这样干净的URL看起来不错,我必须说,但我知道,我在为subdir使用名称时为自己制造了一个问题:)站点名称和subdir名称相同:)我现在正在尝试。站点名称与subdir名称相同一点问题都没有。谢谢,效果很好:。。。。我现在得到了RewriteCond%{HTTP_HOST}^(www\)?website2\.com$[NC]RewriteRule^((?!submp1/).*)$submp1/$1[NC,L],但是你能解释一下为什么submp1在这个规则中被写了两次吗???
(?!submp1/)
实际上是一个负前瞻正则表达式,这意味着只有当请求不是以
submp1/
开头时才能路由到
submp1//code>。这是为了停止无限循环。