.htaccess 新手问题使用 mod_rewrite

Posted

技术标签:

【中文标题】.htaccess 新手问题使用 mod_rewrite【英文标题】:.htaccess newbie issue using mod_rewrite 【发布时间】:2012-02-02 07:59:43 【问题描述】:

我需要为我的网站创建对 SEO 友好的网址。我发现我可以使用.htaccess 来重写它们。所以我尝试了这个:

> http://www.domain.com/page/1/mypage
> http://www.domain.com/user/2/myuser
> http://www.domain.com/help/3/myhelp

现在我被一个通用规则困住了,我不明白 Ant 会根据页面名称重定向流量:

我用:

RewriteEngine ON
RewriteRule ^(.*)$ page.php?page=$1

然后在我的 PHP 中,我没有正确获取页面,我得到了错误的文件。

我该如何解决这个问题?

【问题讨论】:

作为一个好的开始,请查看此在线工具webconfs.com/url-rewriting-tool.php,了解如何管理您的 URL。它也会为您生成 .htaccess 代码。 【参考方案1】:

这是你需要做的:

RewriteEngine On
RewriteBase /
RewriteRule ^([a-z_\-]+)/([0-9]+)/([a-z_\-]+)/?$ page.php?page=$1&id=$2&name=$3 [NC,L]

NC(或 nocase)使测试不区分大小写,A = a;

L(或最后一个)最后一条规则。此处停止重写过程,不再应用任何重写规则;

您可以通过http://httpd.apache.org/docs/current/mod/mod_rewrite.html获取更多信息

【讨论】:

我看到了区别,让我试试,为什么是 nc 和 l? NC不区分大小写,即不区分大小写。 Llast,表示如果此规则匹配,则规则处理将停止

以上是关于.htaccess 新手问题使用 mod_rewrite的主要内容,如果未能解决你的问题,请参考以下文章

301 使用 .htaccess 重定向 URL 模式

将多个 php 文件视为目录,htaccess

使用 htaccess 将 keystone 应用程序重定向到子目录

如何使用 htaccess 在 nginx 的子文件夹中运行 index.php?

如何使用 .htaccess 和 php 制作用户友好的 url

如何在 Heroku Cedar 堆栈上使用 .htaccess 重定向到 HTTPS