使用.htaccess更改目录结构

时间:2009-11-14 19:49:09

标签: php apache .htaccess

我想将我的所有网站文件(甚至包括index.php)移到子目录中(对于exp:“abc”)

例如 前:

public_html
 index.php
 a.file
 directory
   an.other.file
 ...

在:

public_html
 abc_directory
   index.php
   a.file
   directory
     an.other.file
   ...

我希望一切都能像之前一样工作,但我不想做任何重定向(可见)。

人们应该输入“http://myexmaplesite.com/directory/an.other.file/”并通过.htaccess apache为他们提供“http://myexmaplesite.com/abc_directory/directory/an.other.file/”但没有外部重定位(301,302等)

如何使用mod_rewrite将所有请求路由到子目录?

2 个答案:

答案 0 :(得分:1)

这样的东西
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ directory/$1 [L,QSA]

答案 1 :(得分:1)

在文档根目录中尝试此mod_rewrite规则:

RewriteEngine on
RewriteRule !^directory/ directory%{REQUEST_URI} [L]

或者一般来说:

RewriteEngine on
RewriteCond $1 !^directory/
RewriteRule ^/?(.*) directory/$1 [L]

这应该甚至适用于服务器或虚拟主机配置。