使用与.htaccess冲突的jQuery检测主页

时间:2015-02-24 22:29:21

标签: jquery .htaccess

我一直在使用以下jquery来检查页面是否为index.php ...

<script>
    $(document).ready(function(){
    if(window.location.href == "www.mydomain.com/index.php"){
     alert('This is the homepage');
        }   
    });
</script>   

一切都运行正常但我现在已经引入了一个.htaccess文件来摆脱像这样的文件中的.php扩展名...

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

我现在已经丢失了URL中的php扩展,这是我想要的,但现在我的页面检测脚本不再有效。我修改了jQuery片段以删除.php ...

<script>
    $(document).ready(function(){
    if(window.location.href == "www.mydomain.com"){
     alert('This is the homepage');
        }   
    });
</script>

我是否以正确的方式检测主页,或者是否有更有效的方法来处理我的.htaccess文件?

3 个答案:

答案 0 :(得分:1)

将您的脚本更改为:

<script>
    $(document).ready(function() {
       if ( window.location.href == "http://www.domain.com/index.php" ||
            window.location.href == "http://www.domain.com/"
         ) {
          alert('This is the homepage');
       }   
    });
</script>

window.location.hrefhttp://

开头

PS:正如@dave评论你最好检查一下这个条件:

window.location.pathname === "/"

答案 1 :(得分:1)

您可能需要匹配以下内容:

/

index

index.php

要查看,请打印出

的内容
console.log(window.location.href)

然后你应该能够看到它需要匹配的字符串。

虽然我想知道将脚本移动到索引页面内容中是否更好。这就是它的事件驱动,而不是测试网址。

答案 2 :(得分:0)

首先,我会做一个简单的.htaccess文件并将其添加到它的末尾。这样,如果文件不存在且用户除了主页之外没有要求任何内容,则会加载index.php?ISHOME = 1。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^$ /index.php?ISHOME=1 [NC,L]

接下来,在index.php文件中,在初始HTML处理例程之后的某处添加以下代码:

if (intval($_POST['ISHOME']) == 1){
    echo "<script>\n";
    echo "alert('This is the homepage')\n";
    echo "</script>";
}

不需要Jquery。只是一个简单的单线警报。