php - mod_rewrite 的小问题

标签 php linux apache .htaccess

我有一个分类广告网站。每个分类最初的链接如下:

   mydomain.com/ad.php?ad_id=Bmw_M3_M_tech_113620829

我应该使用什么 RewriteRule 来使此链接看起来像:

   mydomain.com/Bmw_M3_M_tech_113620829

另外,我需要在 .htaccess 文件中添加什么? 这是我到目前为止所拥有的:

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /

我刚刚启用了 mod_rewrite,它最初在我的 Ubuntu 服务器上被禁用,方法是:

 a2enmod rewrite

我还需要知道或做什么吗?

谢谢

最佳答案

看起来你需要这样的东西:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/ad\.php
RewriteRule ^(.*)$ ad.php?ad_id=$1 [L]

这应该将对 mydomain.com/Bmw_M3 的请求重写为 mydomain.com/ad.php?ad_id=Bmw_M3

RewriteCond 排除对 ad.php 的直接请求被重写。 RewriteRule 会简单地替换 mydomain.com/ 之后的任何内容来代替 $1[L](最后一个)标志会停止重写过程,这样就不会再对由此规则重写的请求应用任何重写。

关于php - mod_rewrite 的小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2991396/

相关文章:

ruby-on-rails - Rails Assets 目录的权限被拒绝

php - 使用 PHP 访问 jQuery 节点的子节点及其值以进入数据库

php - Linux 中的本地主机问题

linux - 如何在 linux 中找到消耗最多 i/o 的进程?

php - 父级 : Received shutdown signal -- Shutting down the server

mysql - 如何在 Mac 上永久激活非管理员帐户的 XAMPP 的 apache 和 mysql

php - 如何在 codeigniter 中水平显示我的元素

php - && 和 'and' 在 php 中是一样的吗?

linux - 运行 ./configure for vlc 时找不到 libavcodec

在 C 中具有不断增长的堆栈的协程