已解决)如何从超薄框架 url 中删除 '/index.php'
SOLVED)How to remove '/index.php' from slim framework url
我的开发环境是
Ubuntu 14.04.6 LTS
阿帕奇 2.4.7
mysql 是 5.6.33
我的目录是
/var/www/html/your-app
|--public
|-- .htaccess
| `-- index.php
`--app
|-- src
| |-- controllers
| | `-- WebController.php
| `-- models
| `-- WebModel.php
|-- templates
| |-- main.html
| `-- signup.html
|-- dependencies.php
|-- middleware.php
|-- routes.php
`-- settings.php
slim 框架的根路径工作正常。
my_slim_url/index.php
my_slim_url
// load the same page
但是,像这样在我的主屏幕上移动到另一个link
my_slim_url/signup
这条消息,
'The requested URL / register_email was not found on this server.'
显示。
我已经尝试了 Whosebug 上的所有答案,但都没有用。
这是我服务器的一些代码,可能会有用。
如果您告诉我有任何问题或修复目前我还没有找到,
非常感谢你的帮助。
希望大家编码无误...:D
apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<ifModule dir_module>
DirectoryIndex index.php
</ifModule>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
/sites-available/000-default.conf
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html/your-app/public>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
/var/www/html/your-app/pulbic/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
根据 Slim Framework user guide,您的 .htaccess(位于 /var/www/html/your-app/public/.htaccess
)应包含:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
我解决了这个问题!!!!!
首先,运行这个函数:
$ sudo a2enmod rewrite
其次,检查你的 apache2.conf 目录 url:
<Directory /var/www/html/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
原来是,我改成了这样,
<Directory /var/www/html/your-app/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
第三,重启你的apache服务
$ sudo service apache2 restart
那么,成功了!!!
谢谢大家回答我的问题!!! :D
我的开发环境是
Ubuntu 14.04.6 LTS
阿帕奇 2.4.7
mysql 是 5.6.33
我的目录是
/var/www/html/your-app
|--public
|-- .htaccess
| `-- index.php
`--app
|-- src
| |-- controllers
| | `-- WebController.php
| `-- models
| `-- WebModel.php
|-- templates
| |-- main.html
| `-- signup.html
|-- dependencies.php
|-- middleware.php
|-- routes.php
`-- settings.php
slim 框架的根路径工作正常。
my_slim_url/index.php
my_slim_url
// load the same page
但是,像这样在我的主屏幕上移动到另一个link
my_slim_url/signup
这条消息,
'The requested URL / register_email was not found on this server.'
显示。
我已经尝试了 Whosebug 上的所有答案,但都没有用。
这是我服务器的一些代码,可能会有用。
如果您告诉我有任何问题或修复目前我还没有找到,
非常感谢你的帮助。
希望大家编码无误...:D
apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<ifModule dir_module>
DirectoryIndex index.php
</ifModule>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
/sites-available/000-default.conf
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html/your-app/public>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
/var/www/html/your-app/pulbic/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
根据 Slim Framework user guide,您的 .htaccess(位于 /var/www/html/your-app/public/.htaccess
)应包含:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
我解决了这个问题!!!!!
首先,运行这个函数:
$ sudo a2enmod rewrite
其次,检查你的 apache2.conf 目录 url:
<Directory /var/www/html/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
原来是,我改成了这样,
<Directory /var/www/html/your-app/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
第三,重启你的apache服务
$ sudo service apache2 restart
那么,成功了!!!
谢谢大家回答我的问题!!! :D