如何在不添加/index.html

时间:2017-10-07 05:15:13

标签: php html .htaccess url-redirection

简单的问题,让我假装我有以下路径:

http://example.com/subdir/index.html

我希望能够在浏览器中输入以下内容打开 index.html 页面:

www.example.com/subdir

并按Enter键以使浏览器加载其包含的index.html页面。

这可能吗?

我的目标是让一些子目录具有相同的根域( example.com ),并且能够打开每个子目录的index.html页面,而无需最后添加/index.html

非常感谢!

2 个答案:

答案 0 :(得分:1)

对于子文件夹,只将其放在主根.htaccess文件中:

 RewriteEngine On
 RewriteRule ^(.*)/index([\.html]*)$ /$1 [R=302,L] 

对于整个网站,请将其更改为:

 RewriteEngine On
 RewriteRule ^(.*)index([\.html]*)$ /$1 [R=302,L] 

因此,任何indexindex.html的请求都将被删除。

注意:清除浏览器缓存然后对其进行测试,如果确定将302更改为301以获得永久重定向

答案 1 :(得分:0)

如果您的服务器正在运行Apache,只需创建一个DirectoryIndex index.html 文件(如果您还没有)并在文件顶部添加此行:

<a href="JavaScript:void(0);" onClick="FacebookLogin(); return false;">
    <img src="images/fb-login.png" class="img-responsive"/>
    <span>Facebook</span>
</a>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    window.fbAsyncInit = function () {
        FB.init({
            appId: '',
            cookie: true,
            xfbml: true,
            version: 'v2.7'
        });
    };
    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s);
        js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    function FacebookLogin() {
        FB.login(function (response) {
            if (response.authResponse) {
                console.log('Welcome!  Fetching your information.... ');
                FB.api('/me?scope=email&fields=last_name,first_name,email,gender', function (response) {
                    console.debug(response);
                });
            } else {
                console.log('User cancelled login or did not fully authorize.');
            }
        });
     }
</script>