.htaccess重定向到目录的子目录

时间:2014-07-10 16:19:00

标签: php apache .htaccess mod-rewrite redirect

我进行了搜索和搜索,但由于某种原因无法让我的工作如何我需要它。我需要在htaccess中编写一个规则来检查文件是否存在以及它是否不在原始目录的子目录中查找。例如,如果请求是:

www.mysite.com/css/main.css

如果找不到文件main.css,我需要重定向到

www.mysite.com/css/src/main.css

我在/ css /目录

中的.htaccess中试过这个
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^css/?([^/].+)?$ /css/src/$1 [L,R=301]

告诉我,这应该是一项非常简单的任务,但似乎无法实现这一目标。另外关于调试htaccess如何记录重写规则要查找的内容?我在我的VirtualHost文件中有这个:

LogLevel trace4

但是这并没有显示重写规则试图去的地方......感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

你的正则表达式看起来不对。使用此规则:

RewriteEngine ON

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^css/([^/]+)$ /css/src/$1 [L,R=301,NC]

对于你需要的第二部分:

LogLevel trace4
RewriteLog "/val/logs/rewrite.log"

答案 1 :(得分:0)

我能够解决这个问题,我遇到的问题是这里的重定向是我的.htaccess文件,万一有人遇到类似的问题:

在我的css目录中,我有以下.htaccess:

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/].+)?$ src/$1 [L]