我正在使用名为Grapnel.js的路由库。它需要index.php#something/something
形式的网址,所以我使用htaccess重写/something/something
。但是我希望能够有2-3 something
个,所以我使用QSA
标志将其添加为查询参数。
问题是htaccess显然正在应用于ajax调用,并导致无限循环。我尝试过使用
RewriteCond %{REQUEST_URI} !^/file.php
RewriteRule ^(.+)$ /#$1 [NE,R,QSA,L]
和
RewriteRule ^[^file](.+)$ /#$1 [NE,R,QSA,L]
Javascript是:
router.get('*', function(req){
var first = req.params[0];
var parts = first.split("/");
var len = parts.length;
$.ajax({
url: 'file.php',
data: {
parts: parts,
len: len
}
}).done(function(data) {
$('#output').html(data);
});
});
答案 0 :(得分:1)
你可以尝试这段代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /#$1 [NE,R,L]