Apache 重写cond%{REQUEST_FILENAME}all
一个非常简单的问题,但仍然找不到任何答案 我需要所有情况下的重写条件。我不在乎目录、文件或其中任何一个是否存在。直接进入重写规则 以下是我所拥有的:Apache 重写cond%{REQUEST_FILENAME}all,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,一个非常简单的问题,但仍然找不到任何答案 我需要所有情况下的重写条件。我不在乎目录、文件或其中任何一个是否存在。直接进入重写规则 以下是我所拥有的: Options -Indexes RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 该规则仅适用于不存在的文件。但是我想得到用
Options -Indexes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
该规则仅适用于不存在的文件。但是我想得到用户输入的任何内容,因为url字符串是用php处理的,php决定如何处理它
编辑=============================================================================
这个问题得到了回答,但事实证明这不是我所需要的。因此,这里有一个新的修正问题:
整个网站在Ajax上运行。也就是说,只有一个index.php文件,其中包含网站的框架。每隔一个页面/内容都会通过Ajax加载。因此,有一个名为“pages”的文件夹,其中包含加载到index.php中的所有内容php文件。
要使该系统正常工作,我需要:
您可以使用此基于负面前瞻的规则:
Options -Indexes
RewriteEngine on
RewriteRule ^((?!index\.php$).*)$ index.php?url=$1 [QSA,L,NC]
这里的
(?!index\.php$)
是一个消极的前瞻,如果请求URI是index.php
,它将阻止重写规则的执行,感谢您的快速响应。看起来这正是我所需要的,但该站点出现了8条错误消息:[资源被解释为样式表,但使用MIME类型text/html传输:“有什么想法吗?是的,这是因为style.css
也被重写为index.php
。这是因为您删除了RewriteCond%{REQUEST\u FILENAME}!-f
防止重写真实文件的条件。PS:这实际上会影响资源的加载方式吗?因为style.css和javascripts都没有显示..啊,好的,我明白了…嗯..那么我需要一种方法,允许加载所有内容而不重写,除了存储在名为pages的文件夹中的内容…好的,可以吗按照相同的规则执行。是否只有/pages/
文件夹不想重写?
Options -Indexes
RewriteEngine on
RewriteRule ^((?!index\.php$).*)$ index.php?url=$1 [QSA,L,NC]