所以我直接开展业务。两者都在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
我慢慢变得绝望。我现在用两个半小时打架。要么是错误的服务器配置,要么是真正的愚蠢错误。我想这是正则表达式,但我只是不明白。
答案 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