本地主机和 htaccess

use*_*961 3 php .htaccess codeigniter

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

现在我把它显示为:

本地主机/站点名称/public_html/控制器

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

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
Run Code Online (Sandbox Code Playgroud)

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

当我想加载页面的索引文件时,它显示为:

localhost/site1/public_html/index.php
Run Code Online (Sandbox Code Playgroud)

显然,如果我要将其上传到实时服务器,我所要做的就是访问以下链接,它就会起作用。我只是想在上传到实时服务器之前在本地进行开发。

sitesname.com/index.php
Run Code Online (Sandbox Code Playgroud)

Jas*_*nan 5

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

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

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

https://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> 
Run Code Online (Sandbox Code Playgroud)

希望您的网站无需在 URI 中包含 index.php(如localhost/welcome)即可正常运行

当我想加载页面的索引文件时,它显示为: localhost/site1/public_html/index.php 显然,如果我要将其上传到实时服务器,我所要做的就是转到>>以下链接它会起作用的。我只是想在上传到实时服务器之前在本地进行开发。 sitename.com/index.php

请注意,在您的实时服务器上,域名 sitename.com 也指向本地目录结构,例如localhost/site1/public_html/。您也可以在本地主机中实现相同的目标。例如,您可以将开发站点设置为可用于yoursite.dev/index.php之类的 URL 。为此,您必须执行两件事。

  1. 在本地 Apache 服务器中创建一个站点(将其命名为 yoursite.dev)
  2. 编辑主机文件以解析 yoursite.dev

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

在 Apache 中创建站点

sudo nano -w /etc/apache2/sites-available/yoursite.conf
Run Code Online (Sandbox Code Playgroud)

将以下内容粘贴到文件中并进行必要的更改

<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>
Run Code Online (Sandbox Code Playgroud)

保存文件。现在您已经创建了配置文件并需要启用该站点。

sudo a2ensite sandbox
service apache2 restart
Run Code Online (Sandbox Code Playgroud)

编辑主机文件以解析 yoursite.dev

sudo nano -w /etc/hosts
Run Code Online (Sandbox Code Playgroud)

将以下行添加到末尾并保存文件

127.0.0.1       yoursite.dev
Run Code Online (Sandbox Code Playgroud)

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

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