Mod rewrite Mod_rewrite不包括子目录

Mod rewrite Mod_rewrite不包括子目录,mod-rewrite,Mod Rewrite,我有一个mod_重写(主要感谢堆栈成员Olaf),它从 index.php?URL=pages/page.php只需页面。问题是,当请求的页面不直接位于页面(即页面/sub)中时,它会重定向my.css和.js,这是不好的 我试图实现的是: 仅重写页面文件夹中的文件,但包括其所有子目录 重要的是,它永远不会重写文件文件夹的URL 代码如下: Options +FollowSymlinks RewriteEngine on # prevent endless loop RewriteCond

我有一个mod_重写(主要感谢堆栈成员Olaf),它从
index.php?URL=pages/page.php
只需
页面
。问题是,当请求的页面不直接位于
页面
(即
页面/sub
)中时,它会重定向my.css和.js,这是不好的

我试图实现的是:

  • 仅重写
    页面
    文件夹中的文件,但包括其所有子目录
重要的是,它永远不会重写
文件
文件夹的URL

代码如下:

Options +FollowSymlinks
RewriteEngine on
# prevent endless loop
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

# redirect the client
RewriteCond %{QUERY_STRING} URL=pages/(.+?)\.php
RewriteRule ^index\.php$ /gr/%1? [R,L]

# exclude rewriting all files located in /gr/files
RewriteCond %{REQUEST_URI} !^/gr/files/
# rewrite to real content
RewriteRule ^.*$ /gr/index.php?URL=pages/$0.php [L]
我花了无数个小时来处理这个代码。即使是很小的改动也会导致404或500错误


它也会删除外部链接,使其成为.com/www而不是适当的地址,这是一个问题。

您不应该弄乱CSS和脚本的mod_重写规则。这听起来像是一个相对的URI问题。将链接更改为绝对URI:

发件人:


致:


或者不管“style.css”的绝对路径是什么

如果不想更改所有链接,请在页面标题中添加URI基:

<base href="/">


我不确定我是否理解它,但可能会使用
RewriteCond%{REQUEST\u FILENAME}排除所有真实文件-f
可能会有帮助。我没有试图重写那些文件+1对于
,立即修复所有问题。
<link rel="stylesheet" href="/style.css" type="text/css">
<base href="/">