.htaccess MOD_REWRITE特定情况

时间:2014-09-04 13:41:47

标签: ajax .htaccess mod-rewrite

我真的很挣.htaccess因为我无法弄清楚语法是如何工作的以及命令是什么。让我描述一下我需要实现的目标,也许有人可以指导我找到正确的答案:

我有一个与JQuery Ajax合作的网站。因此根文件夹中有一个index.php文件。通过内部链接(mysite.com/contact.php)对子页面的任何请求都将通过Ajax进行,内容信息将从名为" / pages /"的文件夹中加载。到index.php。

但是如果用户自己输入了网址(mysite.com/content.php),因为该目录实际上并不存在,所以一切都会中断。请记住,内容文件位于/ pages /中。直接访问原始内容文件不会显示网站,只会显示原始格式的信息。 为了解决这个问题,我开始使用.htaccess将不存在的目录请求传递给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)调用中进行干扰)

随意浏览一下网站:GitHub

php部分在index.php中。 Ajax在PageHandler.js

中完成

0 个答案:

没有答案