如何将所有流量重定向到Apache文档根目录

时间:2012-10-01 07:29:41

标签: apache mod-rewrite

我有tinycms应用程序,如何将所有流量转发到文档根目录?

示例:

http://<IP-address>/ADFADSF/adsfadsf --> /
http://domain.com/adsf --> /

目前,我在.htaccess中有这个

<Files .htaccess>
order allow,deny
deny from all
</Files>
Options +FollowSymLinks
RewriteRule admin/$ index.php?view=admin [QSA]
Options -Indexes

感谢。 詹姆斯

1 个答案:

答案 0 :(得分:0)

使用mod_rewrite:

RewriteRule ^/?.+$ / [L,R]

使用mod_alias:

RedirectMatch ^/.+ /

当然,这会使RewriteRule admin/$ index.php?view=admin [QSA]规则无效,或者至少导致一些冲突。因此,您应该对该规则进行评论,或者创建一个特殊的例外,其中除了admin/之外的所有流量都会被重定向。


编辑:

  

除了admin /?

之外我将如何制定规则

这是一种方法,我只是猜测这是你想要的行为。这个东西不会改变,它的方式很好:

<Files .htaccess>
order allow,deny
deny from all
</Files>
Options +FollowSymLinks -Indexes

添加:

RewriteEngine On

然后:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/(index\.php|admin)
RewriteRule ^/?.+$ / [L,R]

RewriteRule admin/$ index.php?view=admin [QSA,L]

所以把所有这些放在一起,你有拒绝来访问 .htaccess 文件。然后你有Options,然后是你的重写规则。您需要启用RewriteEngine,然后重定向任何非/index.php/admin的请求,然后在内部重写 /admin/index.php