Mod rewrite Mod_rewrite不包括子目录
我有一个mod_重写(主要感谢堆栈成员Olaf),它从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
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="/">