`
maosuhan
  • 浏览: 112409 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在ubuntu下写apache rewrite

阅读更多

首先确保你的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功能.docx

    下面将详细介绍如何在Ubuntu下启动Apache的Rewrite功能。 首先,Apache的Rewrite功能是通过一个名为`mod_rewrite`的模块提供的。这个模块允许你创建复杂的规则来转换请求的URL,通常是在`.htaccess`文件或服务器...

    ubuntu下配置apache服务器

    本文总结了 Ubuntu 下配置 Apache 服务器的方法和步骤,包括安装 Apache、配置网站目录、启用 mod_rewrite 模块、重启服务器等步骤,并对 MySQL 的安装和配置进行了详细的讲解。 一、安装 Apache 在 Ubuntu 中安装...

    如何在Ubuntu下启动Apache的Rewrite功能

    在Ubuntu系统中配置并启用Apache...通过以上步骤,基本上可以完成在Ubuntu下启用Apache的mod_rewrite模块的工作。总结来看,关键步骤包括:启用模块,修改站点配置以覆盖`.htaccess`文件中的指令,并重启Apache服务器。

    Ubuntu下LAMP(linux+apache+mysql+php)环境的配置与安装.pdf

    在Ubuntu操作系统下,安装和配置LAMP环境是非常重要的步骤,本文将指导您如何在Ubuntu下配置和安装LAMP环境。 Linux Linux是LAMP环境的基础组件,它是一个开源的操作系统,具有高度的可配置性、可扩展性和安全性。...

    Ubuntu下开启Apache对.htaccess 的支持

    以上步骤,详细地展示了如何在Ubuntu系统中配置Apache服务器以支持.htaccess文件,同时给出了XAMPP环境中开启Mod Rewrite功能的相应步骤。对于希望在Linux环境下开发和部署Web应用的用户来说,这些知识非常实用,...

    ubuntu 安装配置apache2+tomcat6+mysql5 全功略.pdf

    本文详细介绍了如何在 Ubuntu 8.04 Server 版本中安装和配置 Apache2、Tomcat6 和 Mysql5。整个过程可以分为准备工作、安装 Ubuntu、安装 Apache2、安装 Tomcat6、安装 Mysql5 和配置环境变量几个步骤。 准备工作 -...

    ubuntu 安装配置apache2+tomcat6+mysql5 全功略.docx

    本文将详细介绍如何在 Ubuntu 8.04 Server 版本上安装和配置 Apache2、Tomcat6 和 Mysql5。该配置能够提供一个稳定的 Web 服务器环境,支持中文和 Linux 下的中文读写。 准备工作 在安装之前,需要准备以下几个...

    How-to-install-apache-on-ubuntu.rar_Ubuntu!

    在Ubuntu中,你可以通过编辑 `/etc/apache2/apache2.conf` 或者 `/etc/apache2/sites-available/` 目录下的特定配置文件来进一步自定义Apache的设置。例如,添加虚拟主机、修改端口、调整日志级别等。 此外,了解...

    ubuntu下lamp的部署

    ### Ubuntu 下 LAMP 的部署详解 #### 一、概述 LAMP 是一套常见的 Web 开发环境,由 Linux、Apache、MySQL 和 PHP 组成。在本篇内容中,我们将详细介绍如何在 Ubuntu 操作系统上搭建 LAMP 环境。通过这一过程,读者...

    Apache24和PHP7.2配置教程

    可以创建一个简单的PHP测试页面,例如`info.php`,并放置在Apache的文档根目录下: ```php phpinfo(); ?&gt; ``` 启动Apache服务器后,在浏览器中访问`http://localhost/info.php`。如果一切正常,您应该能看到关于...

    linux64位系统下安装apache2.2的一些心得收集

    记得在防火墙中打开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服务器操作方法小结

    以下是对在Ubuntu环境下配置和管理Apache服务器的详细步骤和知识点的总结: 1. **安装Apache** 在Ubuntu上安装Apache服务器,可以使用apt包管理器来完成。打开终端并输入以下命令: ``` sudo apt update sudo ...

    Apache2 for Linux

    Apache的配置主要位于`/etc/apache2`(Ubuntu/Debian)或`/etc/httpd`(CentOS/RHEL)目录下的配置文件中。主配置文件通常是`httpd.conf`或`apache2.conf`。 1. **修改默认站点**: Apache安装后会有一个默认的站点...

    Apache服务器

    4. **设置开机启动**: 要使Apache在系统启动时自动运行,可以使用`sudo systemctl enable apache2`(Ubuntu/Debian)或`sudo systemctl enable httpd`(CentOS/RHEL)。 5. **测试运行**: 类似于Windows,访问`...

    老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略

    在Linux环境中,尤其是Ubuntu系统中,搭建Apache+PHP+MySQL环境是开发Web应用的基础。这个环境通常被称为LAMP(Linux、Apache、MySQL、PHP)堆栈。本教程将指导你如何一步步地在Ubuntu上构建这个环境。 首先,我们...

    Apache2中文使用手册

    在Ubuntu系统中,可以使用`sudo apt-get install apache2`命令快速安装。安装完成后,Apache2默认会在80端口监听HTTP请求。 配置文件是Apache2的核心,通常位于/etc/apache2目录下,主要的配置文件是httpd.conf或...

    apache2.zip

    在Linux系统中,通常有预编译的包管理器安装方法,如在Ubuntu/Debian上使用`apt-get install apache2`命令,在CentOS/RHEL上使用`yum install httpd`。在Windows上,你可以找到预编译的二进制版本,直接解压并启动...

    Apache2.2详细操作手册

    Apache2.2是Apache HTTP服务器的一个版本,它在Linux操作系统环境下广泛使用,为用户提供Web服务。这份详细操作手册涵盖了从安装、配置到管理Apache服务器的所有关键步骤,是Linux管理员和Web开发者的重要参考资料。...

    apache2中文手册

    在Linux系统中,通常通过包管理器如`apt`(Ubuntu/Debian)或`yum`(CentOS/RHEL)进行安装。在Windows上,可以下载预编译的二进制文件并按照步骤进行安装。无论哪种方式,安装过程都涉及设置服务、选择安装路径和...

Global site tag (gtag.js) - Google Analytics