.htaccess重定向后隐藏子目录网址

时间:2014-04-30 18:42:16

标签: .htaccess redirect url-rewriting url-masking

我将网站重定向到我创建的子目录。该子目录包含WordPress的安装,现在我想屏蔽网站上的子目录网址。

现在它类似http://mywebsite.com/apt/

我想从URL中删除/ apt /。

我今天尝试了一切,在Google上搜索过,试图在我在这里找到的htaccess上写各种各样的东西,但没有任何作用。

在网站主目录的htaccess上,我使用此代码重定向

RewriteCond %{HTTP_HOST} ^mywebsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mywebsite.com$
RewriteRule ^/?$ "http\:\/\/www\.mywebsite\.com/\apt" [R=301,L] 

在/ apt /文件夹中我有

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /apt/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /apt/index.php [L]

</IfModule>

# END WordPress

有人可以建议我如何从URL隐藏/ apt / extension? 非常感谢。

3 个答案:

答案 0 :(得分:11)

试试这个: 删除重定向部分然后使用此insead:

RewriteCond %{THE_REQUEST} ^GET\ /apt/
RewriteCond %{HTTP_HOST} ^(www\.)?mysite.com$
RewriteRule ^apt/(.*) /$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?mysite.com$
RewriteRule !^apt/ apt%{REQUEST_URI} [L]

然后对主网站使用相同的代码。

答案 1 :(得分:0)

如果你想从url中删除/ apt为什么要将“/”重定向到“/ apt”? 试试这个:

RewriteRule !^apt/ /apt%{REQUEST_URI} [L,NC]

而不是

RewriteRule ^/?$ "http\:\/\/www\.mywebsite\.com/\apt" [R=301,L]

通过此重写,您应该在url www.mywebsite.com

下的/ apt文件夹中看到您的应用程序

答案 2 :(得分:0)

在根文件夹中创建.htaccess文件,并将此内容放入其中(只需更改example.commy_subdir):

 <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteCond %{HTTP_HOST} ^(www.)?example.com$
      RewriteCond %{REQUEST_URI} !^/my_subdir/
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /my_subdir/$1
      RewriteCond %{HTTP_HOST} ^(www.)?example.com$
      RewriteRule ^(/)?$ my_subdir/index.php [L] 
    </IfModule>