Ajax .htaccess MOD_重写特定案例

Ajax .htaccess MOD_重写特定案例,ajax,.htaccess,mod-rewrite,Ajax,.htaccess,Mod Rewrite,我真的很难使用.htaccess,因为我不知道语法是如何工作的,命令是什么。让我描述一下我需要实现的目标,也许有人可以指导我找到正确的答案: 我有一个使用jQueryAjax的网站。因此,根文件夹中只有一个index.php文件。通过内部linkmysite.com/contact.php对子页面的任何请求都将通过Ajax进行,内容信息将从名为/pages/的文件夹加载到index.php 但是,如果用户输入自己的url mysite.com/content.php,所有内容都会中断,因为该目录

我真的很难使用.htaccess,因为我不知道语法是如何工作的,命令是什么。让我描述一下我需要实现的目标,也许有人可以指导我找到正确的答案:

我有一个使用jQueryAjax的网站。因此,根文件夹中只有一个index.php文件。通过内部linkmysite.com/contact.php对子页面的任何请求都将通过Ajax进行,内容信息将从名为/pages/的文件夹加载到index.php

但是,如果用户输入自己的url mysite.com/content.php,所有内容都会中断,因为该目录实际上不存在。请记住,内容文件位于/pages/内。直接访问原始内容文件不会显示站点,而只显示原始形式的信息。 为了解决这个问题,我开始使用.htaccess将不存在的目录请求传递给php,php将其传递给Ajax。但我被卡住了。我真的很不喜欢。htacces。这是我从互联网上得到的:

Options -Indexes
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
这在大多数情况下都有效,除非请求通过子文件夹mysite.com/download/version1

下面是我需要的。htaccess要做的事情:

不管它是文件夹还是文件请求,将其传递给php。 可选:不允许直接访问/pages/文件夹,但允许通过Ajax请求 不要打乱对资源文件的请求调用。这很重要。当我胡乱摆弄时,我得到了很多错误,因为.htaccess也在资源文件.css/.js/.png调用中相互干扰 请随时查看网站:


php部分位于index.php内部。Ajax是在PageHandler.js中完成的。不允许直接访问/pages/文件夹,但是如果请求是通过Ajax发出的,则允许访问-无法判断请求是否确实是通过Ajax发出的。你从客户那里得到的每一个信息都很容易被欺骗。不要围绕spoofable信息构建安全功能。如果在规则中添加前导斜杠/before index.php?url=$1,代码将与子目录一起工作。至于你的另一个问题,你不能区分ajax请求和客户端请求。你必须使用绝对路径而不是相对路径来创建html链接css、javascript、图像、链接hrefSo,因为我已经将每个目录都更改为有一个/infront。现在情况又开始好转了。。除此之外:url栏会获取粘性子文件夹。。也就是说,如果我去mysite.com/foo/bar,那么/foo就会粘住。如果我改为下载,它会显示mysite.com/foo/downlaod,而且还会继续。如果我多次访问站点/download/v1,我会得到这个mysite.com/download/download/download/v1…就像我说的,你必须使用绝对路径。你的链接包括