php - 本地主机和 htaccess

标签 php .htaccess codeigniter

我的站点文件夹中列出了五个目录,它们充当本地服务器上的站点。其中一个站点是用 codeigniter 编码的。我违背了自然的文件结构,并将应用程序和系统文件夹移到了站点文档根目录之外。我目前拥有运行位于 public_html 中的应用程序所需的 index.php 文件,以便在准备好进行测试时轻松传输到我的实时站点。当我在本地服务器上时,如何删除 URL 的所有额外部分。

现在我把它显示为:

本地主机/站点名称/public_html/ Controller

我更喜欢对这个网站进行设置,以便当我在浏览器中打开它时,它会显示如下内容:

dev.mysite.com/controller。

众所周知,public_html 只是一个文件夹。

我在 htaccess 中做了哪些事情?

更新:

在我的 Mac 上,我有一个站点文件夹,其中包含我在本地服务器上的所有站点。

- Sites
    -site1
        -application
        -public_hml
            index.php
            .htaccess
        -system
    -site2
        -application
        -public_html
            index.php
            .htaccess
        -system

我现在已经将 mamp 中的 apache 设置为网站是文档根目录的位置。这是我应该做的吗。

当我想加载页面的索引文件时,它显示为:
localhost/site1/public_html/index.php

显然,如果我要将其上传到实时服务器,我所要做的就是转到以下链接,它会起作用。在上传到实时服务器之前,我只是尝试在本地进行开发。
sitesname.com/index.php

最佳答案

我相信我过去曾这样做过。搬家 申请系统来自 的文件夹public_html 文件夹是最佳实践。它将阻止这两个文件夹公开直接访问。移动文件夹后,您必须在 中进行更改public_html\index.php 文件。将系统和应用程序路径指向上一级。请引用下面的图片,看看我是如何编辑的。

http://i.stack.imgur.com/ekQKi.jpg

执行上述编辑后,现在您的应用程序将正常工作,但您必须在 URI 中包含 index.php 段。例如:- 本地主机/index.php/welcome .要摆脱它,您必须创建一个 .htaccess public_html 文件夹中的文件。请引用下图。

http://i.stack.imgur.com/meF6Z.jpg

现在为了您的方便,我附上了下面的重写代码。

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on

# Send request via index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule> 

希望您的网站无需在 URI 中包含 index.php 即可正常工作,例如 本地主机/欢迎

When I want to load the index file of a page it shows up as: localhost/site1/public_html/index.php Obviously if I were to upload this to a live server all I would have to do is go to the >>following link and it would work. I'm just trying to develop locally before I upload to a live server. sitesname.com/index.php



请注意,在您的实时服务器上,域名 sitename.com 也指向本地目录结构,如 本地主机/站点 1/public_html/ .您也可以在本地主机中实现相同的目标。例如,您可以将您的开发站点设置为可用于类似 的 URL。 yoursite.dev/index.php .为此,您必须执行两件事。
  • 在您的本地 Apache 服务器中创建一个站点(将其命名为 yoursite.dev)
  • 编辑主机文件以解析 yoursite.dev

  • 虽然我使用的是 ubuntu 机器来演示配置,但我相信你也可以在 mac 上弄清楚

    在 Apache 中创建站点
    sudo nano -w /etc/apache2/sites-available/yoursite.conf
    

    将以下内容粘贴到文件中并进行必要的更改
    <VirtualHost *:80>
        ServerName yoursite.dev
        ServerAlias *.yoursite.dev
        DocumentRoot /path/to/public_html/folder
    
    <Directory />
        #Options FollowSymLinks
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
    </VirtualHost>
    

    保存文件。现在您已经创建了配置文件并需要启用站点。
    sudo a2ensite sandbox
    service apache2 restart
    

    编辑主机文件以解析 yoursite.dev
    sudo nano -w /etc/hosts
    

    将以下行添加到末尾并保存文件
    127.0.0.1       yoursite.dev
    

    如果你跟着我,现在你可以使用以下 URL 访问你的开发站点: yoursite.dev/index.php

    我希望这会对您有所帮助,如果您有任何疑问,请告诉我。

    关于php - 本地主机和 htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23838961/

    相关文章:

    php - 使上传的文件在多个服务器之间保持同步 - PHP Linux

    php - AJAX 导致 404 错误?

    apache - 使用 htaccess 添加 www 和 https 支持

    javascript - 调用路由 URL 发送参数 CodeIgniter

    单击时 html 按钮不转到链接,可能是由 codeigniter 3.0 引起的?

    javascript - 如何使用 Javascript 和 PHP 启用鼠标滚轮水平滚动

    php - 如何在 Codeigniter 中检查 session 是否已设置?

    php - GPS追踪装置数据解读

    .htaccess - 如何指示 Apache 根据请求的 URL 中的查询变量应用不同的 URL 重写规则?

    codeigniter - 出于安全原因,error_reporting() 已被禁用