Mod_rewrite:隐藏具有子域的用户的查询字符串

时间:2013-11-30 01:01:04

标签: .htaccess mod-rewrite query-string

我正在尝试做一些非常简单但仍然令人困惑的事情。 我有一个链接 http://sub.example.com/folder/?qvar=value 我希望通过以下方式访问: http://sub.example.com/folder/value

很简单,但我无法弄清楚这一点。 我试过以下无济于事:

#RewriteEngine On
#RewriteRule ^(.*)$ ?qvar=$1 [L, QSA]
#RewriteRule ^(.*)$ /folder/index.php?qvar=$1 [L,QSA]
#RewriteRule ^(.*)$ index.php?qvar=$1 [L,QSA]
#RewriteRule ^(.*)$ /folder/?qvar=$1 [L,QSA]
#RewriteRule ([^/\.]+)/?$ index.php?qvar=$1 [L,QSA]

#RewriteCond %{QUERY_STRING} qvar=(.*)
#RewriteRule index.php  %1 [L]

其中一些给我500个内部服务器错误 其他人将我重定向到/ sub / sub / folder /.

请帮忙!

1 个答案:

答案 0 :(得分:2)

尝试:

Options +FollowSymLinks -Multiviews
RewriteEngine On

RewriteCond %{HTTP_HOST} ^sub\.example\.com$ [NC]
RewriteCond %{THE_REQUEST} \ /folder/\?qvar=([^&\ ]+)
RewriteRule ^ /folder/%1? [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^sub\.example\.com$ [NC]
RewriteRule ^folder/(.*)$ /folder/?qvar=$1 [L,QSA]

这些规则必须位于文档根目录

中的htaccess文件中
相关问题