Javascript 修改.htaccess文件后站点部分不工作

Javascript 修改.htaccess文件后站点部分不工作,javascript,jquery,ajax,.htaccess,mod-rewrite,Javascript,Jquery,Ajax,.htaccess,Mod Rewrite,我刚刚实现了漂亮的URL,取自这个问题: 但这在一些地方破坏了我的网站。在不是index.php的页面上,我不得不添加完整的链接,比如,而不仅仅是,这是解决这个问题的最佳方法吗 关于我的AJAX代码 $.fn.login\u user=函数(){ var email=$(“#登录_email”).val(), password=$('#login_password').val(), 记住_me=$('input:checkbox:checked').val(); 警报(“测试:“+电子邮件+”+

我刚刚实现了漂亮的URL,取自这个问题:

但这在一些地方破坏了我的网站。在不是index.php的页面上,我不得不添加完整的链接,比如
,而不仅仅是
,这是解决这个问题的最佳方法吗

关于我的AJAX代码

$.fn.login\u user=函数(){
var email=$(“#登录_email”).val(),
password=$('#login_password').val(),
记住_me=$('input:checkbox:checked').val();
警报(“测试:“+电子邮件+”+密码);
$.ajax({
键入:“POST”,
url:“../php/login.php”,
数据:{电子邮件:电子邮件,密码:密码,记住我:记住我},
成功:功能(响应){
警报(响应);
}
});
};

jQuery代码是从同一个文件运行的,我在站点上有一个图像滚动条,它仍然在工作,站点上的所有导航都在工作,但不是像这样的部分。这个AJAX在实现.htaccess以删除.php并添加尾随/之前工作得很好,但现在它甚至还没有达到显示警报框的阶段。这个函数是从一些javascript代码中调用的,在另一个文件中,该文件仍然工作正常

我的站点目录如下所示:

mysite.com - index.php
           - communications.php
           /php/ all php files here
           /js/ all js and jquery files here
           /css/ all css files here
这样做:

Options +FollowSymLinks
RewriteEngine On

# Ignore anything in js/css folders
RewriteRule ^(js|css)/ - [L,NC]

# Add www and turn on https in same rule
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

# Adding a trailing slash
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]

# Remove index.php externally
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteCond %{REQUEST_URI} ^(.*/)index\.php$ [NC]
RewriteRule ^ %1 [L,R=301,NE]

# remove .php externally
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,NE,L]

# Remove all .php extensions without interfering with .js or .css.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+?)/?$ $1.php [L]

在测试此更改之前,请确保完全清除浏览器缓存。

刚刚对其进行了更深入的测试。现在我在家,它无法处理css文件。我已经删除了communications.php上的直接链接,这样它们就恢复了,不再工作了。这样的链接是否适用?我不明白为什么不这样做,因为它和index.php在同一个文件夹中,而且效果很好。已清除浏览器缓存。顺便说一句,
RewriteRule^(js | css)/-[L,NC]
将跳过
/js/
文件夹中的任何文件。将此规则移到<代码>行上的<代码>重写引擎下方,然后重试。现在需要此规则来包含图像和文档,因此它会忽略.png/.gif/.jpg/.docx/.xlsx等。非常感谢您的帮助:)将第一条规则更改为:
重写规则^(js | css)/|\(png | gif | jpe?g | docx?| xlsx?$-[L,NC]
Options +FollowSymLinks
RewriteEngine On

# Ignore anything in js/css folders
RewriteRule ^(js|css)/ - [L,NC]

# Add www and turn on https in same rule
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

# Adding a trailing slash
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]

# Remove index.php externally
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteCond %{REQUEST_URI} ^(.*/)index\.php$ [NC]
RewriteRule ^ %1 [L,R=301,NE]

# remove .php externally
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,NE,L]

# Remove all .php extensions without interfering with .js or .css.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+?)/?$ $1.php [L]