mod_rewrite的:从用户使用子域名隐藏查询字符串字符串、域名、用户、mod_rewrite

2023-09-02 00:57:22 作者:獨傢记忆

我试图做一些很简单的,但仍扑朔迷离。 我有一个链接 http://sub.example.com/folder/?qvar=value 我想这是通过访问: http://sub.example.com/folder/value

I am trying to do something very simple yet still confusing. I have a link http://sub.example.com/folder/?qvar=value I want this to be accessible via: http://sub.example.com/folder/value

很简单,但我不明白这一点。 我曾尝试以下无济于事:

Very simple yet I cannot figure this out. I have tried the following to no avail:

#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内部服务器错误。 其他重定向我/次/分/文件夹/.

Some of these give me a 500 internal server error. Others redirect me to /sub/sub/folder/.

请帮忙!

推荐答案

尝试:

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的文件在你的文档根目录

These rules need to be in the htaccess file in your document root