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

时间:2014-06-03 13:10:15

标签: apache .htaccess mod-rewrite

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

使用以下 .htaccess ,我实现了我的域名被重定向到子目录 sub而没有变换URL!

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

首页显示正确,网址仍然是 example.com (这是正确的)。但是,当我点击链接访问子页面时(示例链接:example.com/my-company),页面会将我重定向到 example.com/sub (所以回到首页 - 我不想要那个)。重定向后,这些链接仍无法正常工作。

如何在没有地址栏中的子文件夹的情况下实现这些链接?总结一下:

我将我的域 example.com 重定向到名为 sub 的子文件夹,并且不在地址中显示 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]

那么,我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

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

执行此操作

然后应该有以下工作:

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