htaccess 重定向到文件

问题描述 投票:0回答:1

我需要使用它的查询字符串将一个文件夹重定向到一个文件。 我将 .htaccess 保存在:/subdir

我使用自动读取 .htaccess 文件的 OpenSpeedLite 17.16, 我尝试了几个链接(如下),但到目前为止没有任何效果。 我总是得到original-url.

请帮忙-谢谢

原始网址: www.example.com/tmp32108/subdir/?task=userFiles&pid=1&lang=en

新网址: 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 使用子文件夹中的参数重写重定向

使用多参数查询字符串重定向 htaccess

https://serverfault.com/questions/824949/htaccess-301-redirect-from-directory-to-file

php .htaccess redirect mod-rewrite
1个回答
0
投票

您可以尝试使用以下 .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 匹配任何以 /tmp32108/subdir/ 开头的 URL,并且具有带有指定参数的查询字符串。然后它将 URL 重定向到 /tmp32108/subdir/myfile.php,并将匹配的参数附加到 URL。

RewriteRule 末尾的“R=301”标志表示重定向应该是永久(301)重定向。这对于 SEO 很重要,因为搜索引擎将更新其索引以反映新的 URL。

确保将此代码放在位于 /tmp32108/subdir/ 目录中的 .htaccess 文件中。此外,在测试重定向之前清除浏览器缓存,以确保您没有看到原始 URL 的缓存版本。

© www.soinside.com 2019 - 2024. All rights reserved.