【发布时间】:2011-07-08 20:09:13
【问题描述】:
我已经研究了几个小时来解决这个问题,并想如果有人不介意帮助我,它可能会节省我一些时间。我的问题是关于 Apache mod_rewrite;当然,那里有大量的文档,但没有什么特定于我的要求:
以这种格式获取 URL:
language/pagename.php
(语言可以是“英语”或“法语”,我将为每种语言编写一个单独的规则。[尽管只需要一个示例]。页面名称可以是任何单词字符 (w+)。所有 URL 都将具有.php 扩展名)。
然后重写它,使用户浏览器中的 URL 不会改变,但这样 php 可以以这种格式接收它:
language/page.php?slug=pagename
例如所以$_GET['slug'] 将返回值pagename,然后所有请求都由page.php 处理。
到目前为止,我最好的猜测是
RewriteEngine On
RewriteBase /
RewriteRule ^english/(\w+).php$ english/page.php?slug=$1
但是这使得 php 告诉我 slug=page 这个 URL 例如 english/financial.php;而不是financial。
也尝试了一堆其他的正则表达式约定 (.) 而不是 w 等等..
【问题讨论】: