2015-04-09 2 views
1

У меня есть проект в рамках стройных, где моя структура папок, как это:Apache2 правила перезаписи для удаления index.php из URL (Слим Framework)

root web directory 
    --project 
    -----api 
    -----vendor 
    -----index.php 
    -----.htaccess 

Теперь моя проблема заключается в том, что я хочу, чтобы удалить индекс .php из моих URL-адресов API, чтобы у меня могло быть что-то вроде http://127.0.0.1/project/api/test вместо http://127.0.0.1/project/api/index.php/test. Моя .htaccess выглядит так, но не работает: RewriteEngine На

# Some hosts may require you to use the `RewriteBase` directive. 
# If you need to use the `RewriteBase` directive, it should be the 
# absolute physical path to the directory that contains this htaccess file. 
# 
# RewriteBase/

Header add Access-Control-Allow-Origin "*" 
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" 
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php [QSA,L] 

ответ

0

Это должно работать для вас.

RewriteEngine On 
RewriteRule ^api/([^/]*)$ /project/api/index.php?value=$1 [L] 
+0

разум, чтобы объяснить это немного? Кроме того, что произойдет с запросом Params? –

0

Используй это в вашем файле Root/.htaccess

RewriteEngine on 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^project/api/(.*)/?$ /project/api/index.php/$1 [QSA,NC,L] 
0

Спасибо, ребята, но это работает для меня:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L] 

Надеется, что это помогает кто-то другое тоже ...

0

Я выполнил выполните следующие действия, чтобы он работал на автономном сервере Ubuntu.

Шаг 1 - вы должны включить перепишем Mod

a2enmod rewrite 

Шаг 2 - убедитесь, что ваши настройки Apache в /etc/apache2/apache2.conf, как следовать

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride all 
    Require all granted 
</Directory> 

Убедитесь, что All Override должен быть все

Шаг 3 - Создать файл .htaccess со следующим

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
Смежные вопросы