2010-06-21 177 views
1

我想创建一个干净的网址,比如说,比方说,我有一个网站www.mywebsite.com,我想,如果有人试图http://www.mywebsite.com/something,他应该重定向到www.mywebsite.com,.htaccess重定向

使得输入的任何事情提前mywebsite.com/他们应该重定向到www.mywebsite.com

我怎么能在.htaccess做到这一点,请帮助。

+0

只有当“某些东西”不存在才能重定向,或者您打算没有子内容时,您是否只想要? – 2010-06-21 15:26:39

+0

不,我想要的,如果你尝试访问http://www.mywebsite.com/anything,它应该去http://www.mywebsite.com 应该没有任何提前http:// www.mywebsite.com/ 该网址应该是干净的,在地址栏中应该只显示http://www.mywebsite.com – Suhail 2010-06-21 15:30:45

+0

然后坚持Matt的回答。 – 2010-06-21 15:37:25

回答

1
RewriteEngine ON 
RewriteRule ^/.+/[L,R] 

这会将所有内容重定向到/作为永久重定向。请查看http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html以获取有关可以为透明度等添加的标志的更多信息。

如果要在.htaccess中使用此功能,请确保在<VirtualHost >配置中具有正确的覆盖指令。

+0

嘿马特,我试过,但它不工作。 – Suhail 2010-06-22 06:04:24

+0

我在我的虚拟主机设置下列指令: 有FollowSymLinks 的AllowOverride无 这是正确的? – Suhail 2010-06-22 06:09:19

+0

将'AllowOverride'改为'All',试试 – 2010-06-22 13:31:55

0

如果你只想重定向,如果有文件和目录不已经存在,那么这将工作:

RewriteEngine ON 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/.+/[R,L] 

如果你不想有子访问的内容,然后删除的条件规则

RewriteEngine ON 
RewriteRule ^/.+/[R,L] 
+0

你需要'R'标志;否则,它对用户是透明的。 – 2010-06-21 15:33:14

+0

不,这不起作用 – Suhail 2010-06-21 15:34:51

+0

同意的阿尔瓦罗,谢谢。 – 2010-06-21 15:36:43