我需要将文件夹重定向到一个文件,并使用其 * 查询字符串 *。我将.htaccess保存在:/subdir
我使用OpenSpeedLite 17.16,它可以自动读取.htaccess文件,我尝试了几个链接(如下),但到目前为止没有任何效果。我总是得到 *original-url。
帮帮忙-谢谢
original-url:www.example.com/tmp32108/subdir/?task=userFiles&pid=1&lang=en
new-url:www.example.com/tmp32108/subdir/myfile.php?task=userFiles&pid=1&lang=en
.htaccess:
RewriteEngine On
RewriteBase /subdir/
#RewriteCond %{REQUEST_FILENAME} !-d // I tried these too
#RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} lang=([0-9a-zA-Z_]*)
RewriteCond %{QUERY_STRING} pid=([0-9a-zA-Z_]*)
RewriteCond %{QUERY_STRING} proc=([0-9a-zA-Z_]*)
RewriteCond %{QUERY_STRING} etime=([0-9a-zA-Z_]*)
RewriteCond %{QUERY_STRING} task=([0-9a-zA-Z_]*)
试过这个:
RewriteRule ^(/subdir/)?$ https://www.example.com/tmp32108/subdir/myfile.php?lang=$1&pid=$2&proc=$3&etime=$4&task=$5 [L,QSA]
这个:
RewriteRule .+myfile.php?lang=$1&pid=$2&proc=$3&etime=$4&task=$5 [L,QSA]
职位:
htaccess rewrite redirect with parameters in subfolder
redirect with multiple parameter query strings htaccess
https://serverfault.com/questions/824949/htaccess-301-redirect-from-directory-to-file
1条答案
按热度按时间kse8i1jr1#
您可以尝试以下.htaccess代码将文件夹重定向到具有其查询字符串的文件:
在上面的代码中,RewriteRule匹配任何以/tmp 32108/subdir/开头的URL,并具有指定参数的查询字符串。然后将URL重定向到/tmp 32108/subdir/myfile. php,并将匹配的参数附加到URL。
RewriteRule末尾的“R=301”标志表示重定向应该是永久(301)重定向。这对于SEO目的很重要,因为搜索引擎会更新其索引以反映新的URL。
请确保将此代码放在/tmp 32108/subdir/目录下的.htaccess文件中。此外,在测试重定向之前,请清除浏览器缓存,以确保您没有看到原始URL的缓存版本。