以下是我想要的网址:http://localhost/project/api/,错误是:
抱歉,找不到您要查找的页面。
我的结构,我在api et api / www:
中有2个htaccess- project
-- api
--- app
--- src
--- www
项目/ api /:
<IfModule mod_rewrite.c>
# project/api/.htaccess
RewriteEngine On
RewriteBase /project/api/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ www/$1 [QSA,L]
</IfModule>
项目/ api / www htaccess:
<IfModule mod_rewrite.c>
# project/api/www/.htaccess
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ app.php [L]
</IfModule>
对于RewriteBase,我尝试追加/ project / api / www /但它也没有用。
当网址为http://localhost/justwrite/api/www/时,我会得到我的'#hello world&#39;
编辑: 这是我的项目/ api / www / app.php:
<?php
require_once __DIR__.'/../../vendor/autoload.php';
$app = new Silex\Application();
echo 'test';
$app->get('/', function () {
return 'Hello ';
});
$app->run();
奇怪的是&#34;测试&#34;显示网址http://localhost/project/api/。
编辑2:如果我提出:
$app->get('project/api/', function () {
return new Response('Welcome');
});
&#39;欢迎&#39;显示可能有一个参数,我可以在Silex中设置这个语法:$app->get('/', ...)
?
答案 0 :(得分:0)
我发现重写规则很麻烦。他们最终工作但不知何故总是需要一些战斗。在这种情况下,有一个替代方案:FallbackResource。如果您的apache版本是2.2.16或更高版本,则可以使用下面的代码替换重写规则。将其添加到您的两个.htaccess文件(每个文件夹中一个):
# silex rewrite rule
DirectoryIndex /app.php
FallbackResource /app.php
用silex php文件替换app.php。