Mac*_*Mac 8 apache macos codeigniter osx-snow-leopard
我查看了Codeigniter index.php
在访问不同视图时从URL 中删除的文档,代码显示了如何使用apache删除它:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
但是,当我去的时候http://localhost/code/home
,我得到了这个:
在此服务器上找不到请求的URL /代码/ home.
但访问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
Run Code Online (Sandbox Code Playgroud)
您需要将"http:// localhost/code"作为"code.local"(在我的示例中)作为您的web根目录.假设您在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>
Run Code Online (Sandbox Code Playgroud)
还要确保在"/etc/apache2/httpd.conf"中取消注释它
# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
Run Code Online (Sandbox Code Playgroud)
然后你将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
Run Code Online (Sandbox Code Playgroud)
然后重启你的apache"/ usr/sbin/apachectl -k restart".
如果您不是超级用户,则可能需要sudo.希望这可以帮助.
编辑:检查您的虚拟主机是否正常工作.运行此sudo/usr/sbin/apachectl -k restart -S查看是否已将code.local添加为您的虚拟主机之一.
然后尝试访问code.local/index.php/welcome和code.local/welcome以检查它是否有效.
试试这个吧
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)
在我上班之前我试过3次
要从URL中删除index.php,只需添加即可
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Run Code Online (Sandbox Code Playgroud)
在.htaccess文件中,将.htaccess文件移动到index.php位置附近
/var/www/CodeIgniter/index.php
/var/www/CodeIgniter/.htaccess
Run Code Online (Sandbox Code Playgroud)
在配置文件夹集中的config.php中
$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14176 次 |
最近记录: |