我正在关注YouTube教程(YouTube video),如果不解决此问题,则无法继续进行。我花了好几个小时试图解决它,并没有在哪里。
我要做的是将URL作为查询字符串传递,然后反馈到App函数中,即使它不存在也要回显。我写了一个.htaccess
文件来重写一个URL,这样就可以做到这一点,但无论出于何种原因,它都不像视频节目那样工作。
理论上,我应该输入:localhost/mvc/public/a/b/c/d
并让它回显a/b/c/d
这是我的.htaccess
文件:
Options -MultiViews
RewriteEngine On
RewriteBase /localhost/mvc/public
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
这是功能:
public function __construct(){
$this->parseUrl();
}
public function parseUrl(){
if(isset($_GET['url'])){
echo $_GET['url'];
}
}
答案 0 :(得分:0)
我想知道当您尝试localhost/mvc/public/a/b/c/d
时,发生了什么,例如,是否显示其他任何错误或警告?或者发生404错误?
也许是因为apache的配置?如果可能,请打开服务器上的重写模块(如果使用Apache):
对于Ubuntu:
sudo a2enmod rewrite sudo service apache2 restart
对于其他操作系统:找到你的httpd.conf或任何其他apache的配置文件,并取消注释' LoadModule rewrite_module ......'行,然后重启apache服务器。
我建议您启用PHP的display_errors,这有助于您分析错误的位置。
答案 1 :(得分:0)
唷!!!解决了。问题是我的RewriteBase参数...对于视频路径是不同的我编辑它为我自己的目录,我认为是正确的......它适用于RewriteBase /mvc/public
我的错误是" localhost& #34;在它之前。我想这已经在www文件夹中占了一席之地。
仅供参考,这涉及教程应用程序的极简主义路由功能。