gpt4 book ai didi

apache - 从URL删除 "index.php"-Codeigniter

转载 作者:行者123 更新时间:2023-12-04 04:50:31 24 4
gpt4 key购买 nike

我查看了Codeigniter的文档,该文档在访问不同的 View 时从URL中删除了index.php,该代码显示了如何使用apache删除它:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

但是,当我转到 http://localhost/code/home时,我得到了:

The requested URL /code/home was not found on this server.



但是访问 http://localhost/code/index.php/home很好用,为什么对我不起作用?

我在Mac OS X Snow Leopard上使用 Sites目录: /Users/~myusername~/Sites/code,并且没有使用任何软件,即MAMP,XAMPP。

编辑

对于 sudo /usr/sbin/apachectl -k restart -S命令,我得到以下信息:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server code.local (/private/etc/apache2/httpd.conf:146)
port 80 namevhost code.local (/private/etc/apache2/httpd.conf:146)
Syntax OK

最佳答案

您需要将Web根目录“http://localhost/code”设置为“code.local”(在我的示例中)。
假设您在Mac OS X Snow Leopard上的设置与我的相同。

您应该将以下行添加到“/etc/apache2/extra/httpd-vhosts.conf”

<VirtualHost *:80>
DocumentRoot "/Users/~myusername~/Sites/code"
ServerName "code.local"
ErrorLog "/private/var/log/apache2/code-error_log"
CustomLog "/private/var/log/apache2/code-access_log" common
</VirtualHost>

还要确保在“/etc/apache2/httpd.conf”中未添加注释
# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

然后,将code.local添加到您的“/etc/hosts”中,如下所示
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
127.0.0.1 code.local

然后重新启动apache“/usr/sbin/apachectl -k restart”。

如果您不是 super 用户,则可能需要sudo。
希望这可以帮助。

编辑:
检查您的虚拟主机是否正常工作。运行这个
须藤/usr/sbin/apachectl -k restart -S
查看是否已将code.local添加为您的虚拟主机之一。

然后尝试访问code.local/index.php/welcome和code.local/welcome来检查其是否有效。

关于apache - 从URL删除 "index.php"-Codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6809373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com