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

Regex Mod Rewrite帮助apache-将漂亮的URL转换为PHP可接受的链接,regex,apache,mod-rewrite,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\u doe John doe John doe 我试过很多其他的正则表达式,但我似乎找不到一

现在我用的是:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z-]+)/?$ profile.php?userName=$1 [L]
这适用于没有空格或下划线等的正常情况。。。只是基本的

我需要它对角色非常开放,比如
John\u doe John doe John doe

我试过很多其他的正则表达式,但我似乎找不到一个适用于所有情况的正则表达式。非常感谢任何帮助


谢谢。

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

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/?$ profile.php?userName=$1 [L]
注意,由于字符编码的目的,不鼓励使用这个正则表达式(还有SEO,但我不知道它是否与您相关)。地址最好只包含小写字母数字字符和破折号(
-


有关mod_rewrite regex的更多信息,请参阅。

hm,我想我可以使用破折号。为什么这对搜索引擎优化更好?TBH,搜索引擎优化不是一门精确的科学,所以关于我在回答中所说的内容存在争议。谷歌唯一确定的事情是“foobar”会匹配搜索“foobar”,而“foobar”不会匹配。