首先确保你的apache已经装好了。
接着这样sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load使得rewrite
模块为加载模块。这里涉及到一个available和enable的关系,前者为可用,后者为已经加载开始用的。ok?
我手里有一个网站,在apache根目录的/var/www下有一个baituan文件夹,此时在baituan文件夹下新建一个文件为.htaccess,在里面填写内容
RewriteEngine on
RewriteBase /baituan/
RewriteRule ^pic/(\d)+/?& pic.php?a=$1
RewriteRule ^club/?$ club.php?a=index
RewriteRule ^club/register/?$ club.php?a=register
RewriteRule ^club/login/?$ club.php?a=login
RewriteRule ^club/(\w)+/?$ club.php?a=$1&b=home
RewriteRule ^club/(\w)+/(\w)+/?$ club.php?a=$1&b=$2
RewriteRule ^club/(\w)+/(\w)+/(\w)+/?$ club.php?a=$1&b=$2&c=$3
RewriteRule ^actv/?$ actv.php?a=index
RewriteRule ^actv/(\w)+/create/?$ actv.php?a=$1&b=create
RewriteRule ^actv/(\w)+/(\w)+/?$ actv.php?a=$1&b=$2&c=home
RewriteRule ^actv/(\w)+/(\w)+/(\w)+/?$ actv.php?a=$1&b=$2&c=$3
接着我打算访问一个叫localhost/baituan/club/register的网页,它的确转发到了,但是那个get参数也就是a=register没有转发过去。我查了好久,不知所措。后来在网上看到一篇帖子。
http://serverfault.com/questions/60/mod-rewrite-does-not-forward-get-parameters
找到了解决方法。这里设计到一个multiview的问题
The effect of MultiViews
is as follows: if the
server receives a request for /some/dir/foo
, if
/some/dir
has MultiViews
enabled, and
/some/dir/foo
does not
exist, then the
server reads the directory looking for files named foo.*, and
effectively fakes up a type map which names all those files,
assigning them the same media types and content-encodings it
would have if the client had asked for one of them by name. It
then chooses the best match to the client's requirements.
这里是一个apache negotiation的问题。
举个例子,我在baituan下新建一个test.html
然后lcoalhost/baituan/test会自动请求到
test.html,这就是multiview。至于为什么这里会出现这个问题,我也不懂。
现在 sudo gedit /etc/apache2/sites-enabled/000-default
发现这里写着
<Directory /var/www/baituan_temp/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
果断把MultiViews去掉,重启apache,问题解决。
分享到:
相关推荐
下面将详细介绍如何在Ubuntu下启动Apache的Rewrite功能。 首先,Apache的Rewrite功能是通过一个名为`mod_rewrite`的模块提供的。这个模块允许你创建复杂的规则来转换请求的URL,通常是在`.htaccess`文件或服务器...
本文总结了 Ubuntu 下配置 Apache 服务器的方法和步骤,包括安装 Apache、配置网站目录、启用 mod_rewrite 模块、重启服务器等步骤,并对 MySQL 的安装和配置进行了详细的讲解。 一、安装 Apache 在 Ubuntu 中安装...
在Ubuntu系统中配置并启用Apache...通过以上步骤,基本上可以完成在Ubuntu下启用Apache的mod_rewrite模块的工作。总结来看,关键步骤包括:启用模块,修改站点配置以覆盖`.htaccess`文件中的指令,并重启Apache服务器。
在Ubuntu操作系统下,安装和配置LAMP环境是非常重要的步骤,本文将指导您如何在Ubuntu下配置和安装LAMP环境。 Linux Linux是LAMP环境的基础组件,它是一个开源的操作系统,具有高度的可配置性、可扩展性和安全性。...
以上步骤,详细地展示了如何在Ubuntu系统中配置Apache服务器以支持.htaccess文件,同时给出了XAMPP环境中开启Mod Rewrite功能的相应步骤。对于希望在Linux环境下开发和部署Web应用的用户来说,这些知识非常实用,...
本文详细介绍了如何在 Ubuntu 8.04 Server 版本中安装和配置 Apache2、Tomcat6 和 Mysql5。整个过程可以分为准备工作、安装 Ubuntu、安装 Apache2、安装 Tomcat6、安装 Mysql5 和配置环境变量几个步骤。 准备工作 -...
本文将详细介绍如何在 Ubuntu 8.04 Server 版本上安装和配置 Apache2、Tomcat6 和 Mysql5。该配置能够提供一个稳定的 Web 服务器环境,支持中文和 Linux 下的中文读写。 准备工作 在安装之前,需要准备以下几个...
在Ubuntu中,你可以通过编辑 `/etc/apache2/apache2.conf` 或者 `/etc/apache2/sites-available/` 目录下的特定配置文件来进一步自定义Apache的设置。例如,添加虚拟主机、修改端口、调整日志级别等。 此外,了解...
### Ubuntu 下 LAMP 的部署详解 #### 一、概述 LAMP 是一套常见的 Web 开发环境,由 Linux、Apache、MySQL 和 PHP 组成。在本篇内容中,我们将详细介绍如何在 Ubuntu 操作系统上搭建 LAMP 环境。通过这一过程,读者...
可以创建一个简单的PHP测试页面,例如`info.php`,并放置在Apache的文档根目录下: ```php phpinfo(); ?> ``` 启动Apache服务器后,在浏览器中访问`http://localhost/info.php`。如果一切正常,您应该能看到关于...
记得在防火墙中打开Apache使用的端口(通常是80和443),使用`sudo ufw allow 80/tcp`和`sudo ufw allow 443/tcp`(Ubuntu/Debian)或`firewall-cmd --permanent --add-port=80/tcp`和`firewall-cmd --permanent --...
以下是对在Ubuntu环境下配置和管理Apache服务器的详细步骤和知识点的总结: 1. **安装Apache** 在Ubuntu上安装Apache服务器,可以使用apt包管理器来完成。打开终端并输入以下命令: ``` sudo apt update sudo ...
Apache的配置主要位于`/etc/apache2`(Ubuntu/Debian)或`/etc/httpd`(CentOS/RHEL)目录下的配置文件中。主配置文件通常是`httpd.conf`或`apache2.conf`。 1. **修改默认站点**: Apache安装后会有一个默认的站点...
4. **设置开机启动**: 要使Apache在系统启动时自动运行,可以使用`sudo systemctl enable apache2`(Ubuntu/Debian)或`sudo systemctl enable httpd`(CentOS/RHEL)。 5. **测试运行**: 类似于Windows,访问`...
在Linux环境中,尤其是Ubuntu系统中,搭建Apache+PHP+MySQL环境是开发Web应用的基础。这个环境通常被称为LAMP(Linux、Apache、MySQL、PHP)堆栈。本教程将指导你如何一步步地在Ubuntu上构建这个环境。 首先,我们...
在Ubuntu系统中,可以使用`sudo apt-get install apache2`命令快速安装。安装完成后,Apache2默认会在80端口监听HTTP请求。 配置文件是Apache2的核心,通常位于/etc/apache2目录下,主要的配置文件是httpd.conf或...
在Linux系统中,通常有预编译的包管理器安装方法,如在Ubuntu/Debian上使用`apt-get install apache2`命令,在CentOS/RHEL上使用`yum install httpd`。在Windows上,你可以找到预编译的二进制版本,直接解压并启动...
Apache2.2是Apache HTTP服务器的一个版本,它在Linux操作系统环境下广泛使用,为用户提供Web服务。这份详细操作手册涵盖了从安装、配置到管理Apache服务器的所有关键步骤,是Linux管理员和Web开发者的重要参考资料。...
在Linux系统中,通常通过包管理器如`apt`(Ubuntu/Debian)或`yum`(CentOS/RHEL)进行安装。在Windows上,可以下载预编译的二进制文件并按照步骤进行安装。无论哪种方式,安装过程都涉及设置服务、选择安装路径和...