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)
我相信我过去曾这样做过。从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 。为此,您必须执行两件事。
虽然我使用的是 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
我希望这会对您有所帮助,如果您有任何疑问,请告诉我。