2012-11-19 75 views
0

我是使用.htaccess工作的新手,我在使用mod_rewrite for apache时遇到问题。mod_rewrite无法正常工作

所以基本上我有一个URL。 www.website.com/test/index.php

,我想它是短www.website.com/t/index.php

所以在我.htaccess文件我有这三条线:

RewriteEngine On 
RewriteBase/
RewriteRule ^test/(.*) t/$1 [R=301,L] 

这完全适用,我向www.website.com/ t/index.php但index.php页面不会加载,只会显示一个404 error。任何帮助都会非常赞赏。

+0

请考虑发布此[serverfault.com](http://serverfault.com)。 –

+0

如果您遇到404错误,您如何知道重写工作? – Codeguy007

+0

那么当我去www.website.com/test/index.php重新指引我到www.website.com/t/index.php但index.php不会加载新的URL。 – user1476276

回答

0

您需要首先做你的URL的缩短:

RewriteEngine On 
RewriteRule ^test/(.*) t/$1 [R=301,L] 

...然后确保,新的(和不存在的)的URL会得到处理:

RewriteRule ^t/(.*) test/$1 [L] 

第一重写是“外部的”,所以它显示在客户端浏览器地址栏中,但第二个是“内部”,所以apache只显示新的URL的结果,而不是旧的,而不是客户端地址栏中的任何更改。