基本的htaccess重写规则不起作用

时间:2014-03-12 20:13:03

标签: apache .htaccess mod-rewrite

我浪费了整整一个上午试图做一些非常简单的事情。

我有一个使用WampServer设置的本地服务器。重写模块在httpd.conf中为ON。我想要像

这样的东西
http://localhost/wordpress/assets/whatever.jpg` 

指向

http://localhost/wordpress/assets/test/whatever.jpg`.

我尝试了很多变种它是愚蠢的,我要么没有效果,要么重定向循环,或服务器错误或消息说在我不想要它的位置找不到该文件被发现。这个版本怎么样,为什么这不起作用?

RewriteEngine on

RewriteBase /wordpress/assets/
RewriteRule (.*) test/$1

它会导致内部服务器错误。这个非常接近,它到达测试目录但不是jpg:

RewriteRule . test/
编辑:哦,我的意思是说这个.htaccess文件位于assets文件夹中。我也把事情做得更高了。在我弄清楚RewriteBase的事情之前,我认为重写根本没有发生。

1 个答案:

答案 0 :(得分:0)

您需要确保您尚未重写test文件夹。重写引擎循环,所以第二次绕它再次重写。如下所示:

RewriteEngine on

RewriteBase /wordpress/assets/
RewriteCond $1 !^test/
RewriteRule (.*) test/$1

RewriteEngine on

RewriteBase /wordpress/assets/
RewriteCond %{DOCUMENT_ROOT}/wordpress/assets/test/$1 -f
RewriteRule (.*) test/$1