RewriteRule重定向

时间:2008-12-01 17:46:37

标签: apache mod-rewrite

好吧我有这个RewriteRule应该将文件base.css的任何请求重定向到{.htacces文件的文件夹} /include/style/base.css,但是我只是在无限循环中重定向,我想L参数将确保不会发生。

RewriteRule (.*)/base.css$ include/style/base.css [L,NC,R=301]

它也会重定向到http://localhost/C:/somemaps/include/style/base.css,它实际上也不应该这样做。

有谁能告诉我如何解决这个问题? 另外我想要RewriteRule所以它会将任何file.css重定向到{.htacces文件的文件夹} /include/style/file.css
BTW .htacces文件位于网站的根目录中(不是服务器的根目录!)

3 个答案:

答案 0 :(得分:2)

你有重定向和重写困惑。重定向是HTTP状态代码,用于告知浏览器转到另一个URL。您实际上只想将位置重写到另一个文件位置。尝试

RewriteRule (.*)/(.*).css$ /include/style/$2.css [L,NC]

如果这不起作用,请尝试在RewriteEngine On

之后添加以下内容
RewriteBase /my-virtual-folder-path-where-htaccess-is-stored

答案 1 :(得分:2)

  

此外,我想拥有RewriteRule,因此它会将任何file.css重定向到{.htacces文件的文件夹} /include/style/file.css

试试这个:

RewriteRule ([^/]+).css$ /include/style/$1.css [L,NC]

答案 2 :(得分:1)

此R = 301发出新请求。因此,它再次评估RewriteRule。

尝试使用重写条件(RewriteCond)排除此路径/目录。