想在地址栏中仅显示域名并隐藏所有页面名称和查询字符串

时间:2013-10-07 13:04:49

标签: php apache .htaccess mod-rewrite redirect

我想在地址栏中只显示域名。我是使用核心php编程的新手。 我的.htaccess代码是:

        <IfModule mod_rewrite.c>
        RewriteBase /
        Options +FollowSymlinks -MultiViews
        RewriteEngine on
        # to make `/path/index.php` to /path/
        RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.php [NC]
        RewriteRule . %1 [NE,R=301,L]
        RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC]
        RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC]
        RewriteCond %{REQUEST_URI} !\.php$ [NC]
        RewriteCond %{REQUEST_FILENAME}.php -f
        RewriteRule . %{REQUEST_URI}.php [L]
        </IfModule>

这工作正常,但它显示了这样的结果            http://mysite.com/about            http://mysite.com profile_view?name = Apoorva%20Chauhan%20GMAIL%20&amp;&amp;%20user_type = User

我只是想隐藏完整的网址,希望我的域名。无论我点击哪个链接,网址都应该是这样的www.mysite.com/。 以上代码只完全隐藏index.php。 我的项目截止日期已经结束,我在这个主题上浪费了一周时间。但我失败了。 请帮我。 在此先感谢。

3 个答案:

答案 0 :(得分:2)

我使用javascript来隐藏或更改整个网址。它现在正常工作。但我并不完全满意。

  <script type='text/javascript'>
  if(history.replaceState) history.replaceState({}, "", "/");
  </script>  

注意:你想要展示的路径在哪里。

无论我点击了哪个链接,它都会显示url,如mysite.com。但我在重新加载页面时遇到问题,完整的url查询字符串会闪烁到地址栏中。

答案 1 :(得分:2)

使用document.location.replace('URL');

浏览器不会构建历史记录, 并只显示基础http://URL/# 无论网站内的哪个页面。

答案 2 :(得分:0)

我认为(不清楚说明)你想要的是单页网站。如果是这样的话,你就接近这一切都是错的。这不是通过.htaccess实现的,而是通过js / ajax实现的。您可以在here找到此类Web应用程序的示例。