2015-12-20 43 views
0

我想问一下.htaccess可能会改变网址更简单。我有一个像这样在我的本地主机的网址:在本地设置.htaccess并隐藏index.php

localhost/spsb/index.php 

localhost/spsb/index.php?page=student 

的问题是:

  1. 我怎样才能改变上述存在的网址:

localhost/spsb

localhost/spsb/student 
  • 哪里是正确的位置,以节省.htaccess文件?
  • 谢谢是一个很大的意见 我一直在到处寻找了很多,但没有一个人能解决我的问题

    回答

    1

    使用URL重写,

    对于Apache服务器:

    首先,您必须激活重写模块 (How to active mod_rewrite

    添加这些行到您的htaccess使重写引擎

    Options +FollowSymlinks 
    
    RewriteEngine On 
    

    而此行重写URL,只要你想

    RewriteRule ^spsb\/?$ spsb/index.php 
    RewriteRule ^spsb/([a-zA-Z]+)$ spsb/index.php?page=$1 [L] 
    

    对于Nginx的服务器:

    把这几行“位置“范围:

    if (!-e $request_filename) 
    { 
        rewrite ^spsb\/(.*)$ spsb/index.php?page=$1; 
    } 
    

    注意:locati .htaccess的相对于他进入网站结构的级别,如果他在一级网站/目录/包含的规则是有限的网站/目录结构

    为无限制,我建议把它放进文件根目录 ...或者你可以把规则直接进入你的虚拟主机配置

    如何检查错误:

    • 首先有您重新启动服务器以应用激活重写 模块
      (从htaccess的规则不要求重启,只有模块 修改)
    • 添加以下行到你的htaccess后 “RewriteEngine叙述上”:

      RewriteLog “/无功/日志/的Apache2/{your_log_site ...}” < - 把你的路径

      RewriteLogLevel 7

    • 检查由“尾-f /无功/日志/的Apache2/you_log_site。错误日志”,查看是否 错误出现在resfresh页面

    +0

    嘿@MTroy谢谢是一个很大的意见......我现在就试试 –

    +0

    我一直只是尝试,但没有工作,即使我已经在转弯 httpd.conf中的LoadModule rewrite_module modules/mod_rewrite.so 我也把.htaccess放在htdocs的项目文件夹中 这个怎么样? –

    +0

    你的日志说什么? – MTroy