所以我在RewriteRule
和.htaccess
非常糟糕,我一直在尝试创建一个RewriteRule,它允许我通过索引重定向目录中尚不存在的任何请求.PHP。
目前看起来像这样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?name=$0 [L]
但是,一旦我开始尝试从重定向的URL运行ajax请求,它就会中断并返回整个重定向页面,而不是目录中任何脚本的返回数据。我对如何使这项工作感到困惑。 \
我希望能够通过index.php和其他所有请求正常路由每个非实际请求。
答案 0 :(得分:1)
如果您可以为正常请求找到一个(或多个),则可以使用RegEx潜入另一个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]
答案 1 :(得分:1)
你的htaccess代码是正确的。 “-f”检查有效文件,“ - d”检查有效目录。
我的猜测是你从 / some-dir / another-path / 等网址发出相对的ajax请求,这些请求在内部被重写为 index.php?name = / some-dir /另一个路径/ 。对 / -ajax-data.php 的相对ajax请求将被发送到 /some-dir/another-path/my-ajax-data.php ,而不是您可能会想到 /my-ajax-data.php 。尝试在ajax请求中使用绝对URL。嗯,这只是在黑暗中拍摄的。