如何从url slim框架设置VirtualHost中删除index.php?

时间:2015-05-06 23:12:47

标签: php .htaccess centos virtualhost slim

参考图片:

enter image description here

在这条路线中,我有一个例子:

C:\wamp\www\api

我在VirtualBox中使用centos。

在centos的控制台中,我可以通过这条路线进入同一个文件夹:

cd /var/www/html/sistemaTareas/api 

好吧,在API文件夹中我有:

index.php | .htaccess | Slim

的index.php:

<?php
require 'Slim/Slim.php';
\Slim\Slim::registerAutoLoader();
$application = new \Slim\Slim();
$application->get('/hello/:firstname/:lastname', function ($firstname,$lastname) {
echo "hola, $firstname $lastname";
});
$application->run();
?>

htaccess的:

RewriteEngine On
RewriteCond  !/src/ [NC]
RewriteRule ^(.*)$ src/$1 [L]

如果我把它放在Chrome中:

http://localhost:8082/sistemaTareas/api/index.php/hello/jean/bergeret

打印此:

hola, jean bergeret

我需要打印这个:

hola, jean bergeret

但是这个URL(没有index.php):

http://localhost:8082/sistemaTareas/api/hello/jean/bergeret

httpd.conf中的VirtualHost:

#<VirtualHost *:80>
#ServerAdmin me@mysite.com
#DocumentRoot "/var/www/html/sistemaTareas/api"
#ServerName mysite.com
#ServerAlias www.mysite.com

#ErrorLog "logs/mysite.com-error.log"
#CustomLog "logs/mysite.com-access.log" combined

#<Directory "/var/www/html/sistemaTareas/api">
#   AllowOverride All
#   Order allow,deny
#   Allow from all
#</Directory>

目前已注释,但如果我取消注释VirtualHost并使用:

http://localhost:8082/sistemaTareas/api/hello/jean/bergeret

print&#34; not found&#34;。

我猜虚拟主机是问题所在,那么如何在没有index.php的情况下将其配置为工作? (对不起,我的英文)

1 个答案:

答案 0 :(得分:0)

像这样配置您的VirtualHost:

var str1 = "   "
if str.isEmptyOrContainsOnlySpaces() {
    // custom code e.g Show an alert
}

在我的项目的基础上,我有一个.htaccess文件:

<VirtualHost *:80>
  DocumentRoot "XXX"
  ServerName XXX
  ServerAlias XXX

  <Directory "XXX">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Require all granted
  </Directory>

  ErrorLog "XXX"
</VirtualHost>

这就是全部,它对我有用:)