如何将mod_rewrite重定向到文档并设置GET参数?

时间:2011-05-24 17:22:49

标签: html apache .htaccess mod-rewrite webserver

所以我直接开展业务。两者都在XAMPP(Windows 7 32位)和MAMP(OS X Snow Leopard)上进行了测试和确认,两者都是最新版本。我有以下网站结构:

/op/.htaccess
/op/index.php
/op/profile.php

路径是Apache文档根目录的绝对路径。

我的.htaccess文件如下所示:

RewriteEngine on
RewriteRule ^[a-zA-Z0-9]+$ profile.php?alias=$1

当我通过 http:// localhost:8888 / op / 请求网站时,会打开文档 index.php 。没关系。当我通过 http:// localhost:8888 / op / example 请求打开文档 profile.php 时,这也没关系。并且根据需要设置名为别名的GET参数。但它的价值只是空洞!像这样:

http://localhost:8888/op/profile.php?alias=

所以我只想将url的最后一部分作为GET变量传递给服务器:

http://localhost:8888/op/profile.php?alias=example

我慢慢变得绝望。我现在用两个半小时打架。要么是错误的服务器配置,要么是真正的愚蠢错误。我想这是正则表达式,但我只是不明白。

1 个答案:

答案 0 :(得分:1)

这是一个正则表达式的东西,你的htaccess应该是这样的:

RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)$ profile.php?alias=$1

字符串末尾的$1与第一个子模式匹配,但您没有指出任何子模式。第一组括号是第一个子模式。

此外,您可能希望指出RewriteBase

RewriteEngine on
RewriteBase /
RewriteRule ^([a-zA-Z0-9]+)$ profile.php?alias=$1