.htaccess htaccess重定向到文件

a0x5cqrl  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(234)

我需要将文件夹重定向到一个文件,并使用其 * 查询字符串 *。我将.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

kse8i1jr

kse8i1jr1#

您可以尝试以下.htaccess代码将文件夹重定向到具有其查询字符串的文件:

RewriteEngine On
RewriteBase /tmp32108/subdir/

RewriteCond %{QUERY_STRING} lang=([0-9a-zA-Z_]*)  
RewriteCond %{QUERY_STRING} pid=([0-9a-zA-Z_]*) 
RewriteCond %{QUERY_STRING} task=userFiles
RewriteRule ^(.*)$ /tmp32108/subdir/myfile.php?lang=%1&pid=%2&%{QUERY_STRING} [L,R=301]

在上面的代码中,RewriteRule匹配任何以/tmp 32108/subdir/开头的URL,并具有指定参数的查询字符串。然后将URL重定向到/tmp 32108/subdir/myfile. php,并将匹配的参数附加到URL。
RewriteRule末尾的“R=301”标志表示重定向应该是永久(301)重定向。这对于SEO目的很重要,因为搜索引擎会更新其索引以反映新的URL。
请确保将此代码放在/tmp 32108/subdir/目录下的.htaccess文件中。此外,在测试重定向之前,请清除浏览器缓存,以确保您没有看到原始URL的缓存版本。

相关问题