防止htaccess影响ajax文件请求
在我的防止htaccess影响ajax文件请求,ajax,.htaccess,Ajax,.htaccess,在我的.htaccess文件中,我有一些用于干净URL的重写规则,我还需要在我的网页中调用AJAX。由于重写规则,我在ajax文件请求方面遇到了问题。以下是我的htaccess文件内容: Options -MultiViews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteBase /~mavili/loran/orders/ RewriteRul
.htaccess
文件中,我有一些用于干净URL的重写规则,我还需要在我的网页中调用AJAX。由于重写规则,我在ajax文件请求方面遇到了问题。以下是我的htaccess文件内容:
Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /~mavili/loran/orders/
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
当我这样做的时候:
$.ajax({
type: 'get',
url: 'http://domain.com/misc/page.php',
success: function(data) {
$('#load_content').html(data);
},
error: function() {
$('#load_content').html('Error: Unable to load file.');
}
});
请求
http://domain.com/misc/page.php
通过htaccess重写规则,将一切都搞糟。有没有办法防止AJAX调用通过htaccess设置?让AJAX请求跳过规则的一种方法是在URL中粘贴一个虚拟查询参数,例如:
$.ajax({
type: 'get',
url: 'http://domain.com/misc/page.php&skip=1',
success: function(data) {
$('#load_content').html(data);
},
error: function() {
$('#load_content').html('Error: Unable to load file.');
}
});
并使用如下重写规则跳过具有?skip=1
查询参数的所有请求:
Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !^skip=1$
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
使Ajax请求跳过规则的一种方法是在URL中粘贴一个虚拟查询参数,例如:
$.ajax({
type: 'get',
url: 'http://domain.com/misc/page.php&skip=1',
success: function(data) {
$('#load_content').html(data);
},
error: function() {
$('#load_content').html('Error: Unable to load file.');
}
});
并使用如下重写规则跳过具有?skip=1
查询参数的所有请求:
Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !^skip=1$
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
不幸的是,事实并非如此。AJAX调用与任何其他web连接一样,只是处理它们的方式不同。您需要修改htaccess以忽略特定的文件夹或文件,以便不中断Ajax调用。htaccess控制您的应用程序,所有请求都通过.htaccess文件规则。你必须换一种方式思考。我建议那些投反对票的人阅读下面的答案。不幸的是,不是真的。AJAX调用与任何其他web连接一样,只是处理它们的方式不同。您需要修改htaccess以忽略特定的文件夹或文件,以便不中断Ajax调用。htaccess控制您的应用程序,所有请求都通过.htaccess文件规则。你必须换一种方式思考。我建议那些投反对票的人阅读下面的答案。