Apache .htaccess是否使用@sign重写规则?

Apache .htaccess是否使用@sign重写规则?,apache,.htaccess,mod-rewrite,url-routing,Apache,.htaccess,Mod Rewrite,Url Routing,我正在尝试创建一个如下所示的URL: mysite.com/@username 这将导致以下情况: subdomain.mysite.com/user/@username 我对重写规则很糟糕,一直在努力让它发挥作用。我尝试过的一些方法是: RewriteRule subdomain.mysite.com/user/(.*) mysite.com/$1 [R=302,NC,L] RewriteRule ^(.@)(.*) subdomain.mysite.com/user/$1 [R=302

我正在尝试创建一个如下所示的URL:

mysite.com/@username

这将导致以下情况:

subdomain.mysite.com/user/@username

我对重写规则很糟糕,一直在努力让它发挥作用。我尝试过的一些方法是:

RewriteRule subdomain.mysite.com/user/(.*) mysite.com/$1  [R=302,NC,L]

RewriteRule ^(.@)(.*) subdomain.mysite.com/user/$1  [R=302,NC]

RewriteRule ^(.@)([A-Za-z0-9_]+) mysite.com/user/$1  [R=302,NC]
我意识到这些可能毫无意义。每次我想弄清楚路由是如何工作的,我就会转过身来,开始写你上面看到的废话


任何指点都将不胜感激。谢谢。

您无法路由到子域(无论如何使用htaccess),但您可以重定向到子域

RewriteEngine On
RewriteBase /
RewriteRule @(.*) http://subdomain.mysite.com/user/@$1 [L,R=301]

@symbol应该没问题

我认为它不应该工作。你是什么意思?我不允许路由到子域…或者@符号不能使用?我相信@符号应该是%转义的。太好了!事实上,我刚刚想出了一种可行的替代方法,但我更喜欢你的:([@A-Za-z0-9_957;]+)[R=302,NC,L]