Mod Rewrite帮助apache - 将漂亮的URL转换为PHP可接受的链接

时间:2012-02-19 21:45:05

标签: regex apache mod-rewrite

现在我正在使用它:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z-]+)/?$ profile.php?userName=$1 [L]

这适用于没有空格或下划线等的正常情况......只是基础知识。

我需要它对角色非常开放 - 比如John_doe john-doe john doe

我已经尝试了很多其他正则表达式,但我似乎无法找到适用于所有内容的版本。非常感谢任何帮助!

感谢。

1 个答案:

答案 0 :(得分:0)

.字符将匹配任何单个字符:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/?$ profile.php?userName=$1 [L]

请注意,由于字符编码的目的(以及SEO,但我不知道它是否与您相关),因此不鼓励使用此正则表达式。让地址仅包含小写字母数字字符和短划线(-)总是更好。

有关mod_rewrite正则表达式的详细信息,请参阅this link