在.htaccess重定向上从URL中删除“/”斜杠时,页面资源无法加载

时间:2016-03-27 18:43:17

标签: php .htaccess

我有一个简单的重定向规则如下:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^contact-us\/?.*$ ./contact-us.php [NC,QSA,L]

此规则适用于以下网址:

http://localhost/folder1/folder2/folder3/contact-us/

问题是,如果我删除最后的斜杠,页面正确加载但资源(css / js)没有加载

http://localhost/folder1/folder2/folder3/contact-us ----> This fails

在尝试加载资源时,似乎省略了一个文件夹,而不是http://localhost/folder1/folder2/folder3/js/jquery.js,JS资源的URL被设置为http://localhost/folder1/folder2/js/jquery.js

这里有规则缺少概念吗?如何使两个URL都有效?

1 个答案:

答案 0 :(得分:1)

由于你在js / css等中使用相对路径,这种情况正在发生。

要修复此问题,您可以在网页HTML的<{1}}部分下方添加:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
    char str1[100], str2[100];

      printf("enter the first string :");
      scanf("%s", &str1);
      printf("enter the second string :");
      scanf("%s", &str2);

     if(strcmp(str1,str2)==0){
        printf("the strings are equal\n");
     }
     else if(strcmp(str1,str2)<0){ 
        printf("string 1 is less than string 2\n");
     }
     else{
        printf("string 1 is greater than string 2\n");
     }
    return 0;
}

以便从该基本网址解析每个相对网址,而不是从当前网页的网址解析。