Apache htaccess-将DNS条目重定向到子文件夹,但url中没有子文件夹

Apache htaccess-将DNS条目重定向到子文件夹,但url中没有子文件夹,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我的问题是,我的域example.com指向我服务器的根目录(正常行为),但网站位于子目录子目录中 通过以下.htaccess我实现了我的域被重定向到子目录子目录,而无需更改URL RewriteEngine On RewriteRule !^/sub /sub%{REQUEST_URI} [L,NC] frontpage显示正确,url仍然是example.com(正确)。但是,当我点击一个链接访问一个子页面(示例链接:Example.com/my company)时,该页面会将我重定向到E

我的问题是,我的域example.com指向我服务器的根目录(正常行为),但网站位于子目录子目录中

通过以下.htaccess我实现了我的域被重定向到子目录子目录,而无需更改URL

RewriteEngine On
RewriteRule !^/sub /sub%{REQUEST_URI} [L,NC]
frontpage显示正确,url仍然是example.com(正确)。但是,当我点击一个链接访问一个子页面(示例链接:Example.com/my company)时,该页面会将我重定向到Example.com/sub(因此返回到frontpage-我不希望这样)。重定向后,这些链接仍然不起作用

如果没有地址栏中的子文件夹,如何实现这些链接的工作?总结如下:

我将我的域example.com重定向到名为sub的子文件夹,并且不在地址栏中显示文件夹sub。我希望整个页面在地址栏中没有子文件夹的情况下工作

在背景中,我们使用typo3。以下是子文件夹的.htaccess

Options None
Options +FollowSymlinks

RewriteEngine On
RewriteBase /sub

RewriteRule ^(typo3|t3lib|tslib|fileadmin|typo3conf|typo3temp|uploads|showpic\.php|favicon\.ico)/ - [L]
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php

# to avoid double content
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

那么,如何实现这一点呢?

这是因为重写规则在默认情况下会发出重定向。您需要告诉它不要执行重定向。您可以使用PassThrough floaf[PT]来执行此操作

然后,应采取以下措施:

RewriteRule !^/sub/(.*)$ /sub/$1 [L,NC,PT]

非常感谢。现在,它会重定向到没有子文件夹的页面,但不会显示站点。它保持空白。我编辑了我的答案。如果直接在/sub下查询页面会发生什么情况?我编辑了我的htaccess:frontpage现在加载了错误的css/js文件,因为基本href指向example.com而不是example.com/sub。我在typo3中更改了baseURL,但这没有帮助。当我查询example.com/sub/my-company的url时,它可以工作。但当我查询example.com/my-companyUpdate时仍然不是这样:当我查询example.com/my-company时,该站点会将我重定向回example.com/sub