在项目目录中设置apache2默认配置和htaccess的正确方法



亲爱的人们,

我的目标是以一种特定的方式设置apache2的000-default.conf.htaccess,因此如果用户(用户)想要访问我正在构建的web应用程序,则用户将始终被重定向到特定的php文件(例如index.php)。

例子:

  • 范例应用。当地的
  • example-app.local/hello world
  • example-app.local/admin.php
  • example-app-local/../../../../my-passwords.txt

都应该指向index.php。我学习了几个教程,但我想我需要一个专门的教程,这样我才能完全理解apache2的概念及其配置。请随意评判我——我对批评没有意见。

我的文件中有以下内容

1。000-default.conf文件位于/etc/apache2/sites-available/

<VirtualHost *:80>
   <Directory /var/www/>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Order allow,deny
       allow from all
   </Directory>
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

…还有很多注释

2。example-app.local.conf文件位于/etc/apache2/sites-available/

<VirtualHost *:80>
   ServerAdmin admin@example.com
   ServerName example-app.local
   ServerAlias www.example-app.local
   DocumentRoot "/var/www/example-app"
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

3。.htaccess文件位于/var/www/example-app/

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,R]

我得到的是以下内容:"Apache默认配置就像配置之神,你可以特别声明你可以AllowRedirect,这将神奇地触发htaccess的功能,在那里你需要更神奇的语法,使每个请求从用户点只到index.php"这是正确的吗?

正在工作 Apache正在工作。我通过

启用和禁用配置
 sudo a2ensite 000-default.conf
 sudo a2dissite 000-default.conf

然后重新启动并通过

检查一切是否正常
sudo service apache2 restart
sudo service apache2 status

active (running) .

/etc/hosts的内容也以正确的方式编辑,因为当我尝试将浏览器指向example-app.local页面时,我实际上可以看到index.html文件的内容。我还想指出,我已经正确安装了php -我通过phpinfo函数/方法测试了它。

我试了几个教程,没有一个帮助我。我相信我错过了一些重要的东西,我太"盲目"了,看不见它,所以我需要有人"打开"我的眼睛,所以请帮助我。

最诚挚的问候,

又一个困惑的创业开发者,

Bobkoo

试试这个:在RewriteEngine On之后试试RewriteBase /,去掉index.php

前面的斜杠

顺便说一句,你在Windows上工作…所以DocumentRoot "/var/www/example-app"应该是C:xampphtdocsproject-folder

最新更新