在不破坏真实文件的情况下重写网址

在不破坏真实文件的情况下重写网址

问题描述:

所以我非常可怕的在RewriteRule.htaccess,我一直在尝试创建一个RewriteRule,它允许我通过index.php重定向任何目录中尚不存在的请求。在不破坏真实文件的情况下重写网址

它看起来像这样的时刻:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?name=$0 [L] 

然而,一旦我开始试图运行从一个重定向的URL它打破了Ajax请求,而是返回任何脚本,它的返回数据的整个重定向页面在目录中。我很困惑,我该如何做这项工作。 \

我希望能够做到的是能够通过index.php和其他每个请求来正常处理每个非真实请求。

如果您可以为您找到一个(或多个)正常请求,您可以使用正则表达式在另一个RewriteCond中潜行。类似于

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !^*your* *RegEx* *for* *normal* *request* 
RewriteRule ^(.*)$ index.php?name=$0 [L] 
+0

对于正常的请求,我只是希望它能正常运行。 – 2012-08-04 16:18:01

+0

是的,我添加的条件有点说“如果REQUEST_FILENAME'不是以* * *正则* *请求*开头,那么使用下面的规则重定向”.... – Havelock 2012-08-04 16:25:33

+0

没有似乎工作,我仍然得到我的index.php打印输出rerout – 2012-08-04 16:32:38

您的htaccess代码是正确的。 “-f”检查有效的文件,“-d”检查有效的目录。

我的猜测是,你从一个网址发出相对Ajax请求喜欢/在内部改写为的index.php?NAME = /一些-DIR /其他路径/一些-DIR /其他路径/ 。的相对Ajax请求,即我的Ajax-data.php将作出/some-dir/another-path/my-ajax-data.php,而不是/my-ajax-data.php如你所想。尝试在ajax请求中使用绝对URL。呃,这只是在黑暗中拍摄而已。