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



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

与下面的。我实现了我的域名重定向到子目录子而不改变URL!

RewriteEngine On
RewriteRule !^/sub /sub%{REQUEST_URI} [L,NC]

首页显示正确,url仍然是example.com(这是正确的)。但是当我点击链接访问子页面时(示例链接:example.com/my-company),页面将我重定向到example.com/sub(所以回到首页-我不想那样)。重定向后,这些链接仍然不起作用。

如何实现这些链接工作没有子文件夹在地址栏?总结:

我将我的域名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]

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

这是因为RewriteRule默认情况下会发出重定向。您需要告诉它不要执行重定向。您可以使用PassThrough浮动[PT]

下面的代码应该可以工作:

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

最新更新