Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess重定向,如果URL包含3个部分_Apache_.htaccess - Fatal编程技术网

Apache .htaccess重定向,如果URL包含3个部分

Apache .htaccess重定向,如果URL包含3个部分,apache,.htaccess,Apache,.htaccess,是否有一个htaccess规则可以重写URL,如下所示: https://www.example.com/folder/123/title-text/ to https://www.example.com/folder/subfolder/ RewriteEngine on RewriteRule ([a-zA-Z])/ index.php?k=$1 RewriteRule ([0-9]+)/ index.php?id=$1 url 123的数字部分可以有1到3个数字。我发现: https:

是否有一个htaccess规则可以重写URL,如下所示:

https://www.example.com/folder/123/title-text/ to https://www.example.com/folder/subfolder/
RewriteEngine on
RewriteRule ([a-zA-Z])/ index.php?k=$1
RewriteRule ([0-9]+)/ index.php?id=$1
url 123的数字部分可以有1到3个数字。我发现:

https://www.example.com/folder/123/title-text/ to https://www.example.com/folder/subfolder/
RewriteEngine on
RewriteRule ([a-zA-Z])/ index.php?k=$1
RewriteRule ([0-9]+)/ index.php?id=$1

但这似乎只有在第一部分有数字时才重定向。在我的例子中,url的第二部分有数字,第三部分“标题文本”必须存在,因为我不想重定向/folder2/123/等url。

您可以将此规则用作第一条规则:

RewriteEngine on

RewriteRule ^(videos)/(\d+)/[\w-]+/?$ /$1/browse [L,NC,R=301,NE]

# remaining rules come here

子文件夹
是否始终是目标中的静态(常量)部分?是的,它是静态url。您的.htaccess是否在
文件夹中/
?不在根目录中,并使用一些其他重写规则,例如非www太www和http到https。它不适用于我,我使用如下方式:
重写引擎重写规则^videos/(\d+)/[\w-]+/?$/$1/浏览[L,NC,R=301,NE]

要将example.com/videos/654/new-video/重定向到example.com/videos/browse/Thank you,它适用于根本不存在的URL,但不适用于CMS(PHPVibe)我正在使用。如果我尝试
example.com/something/123/text
它会起作用,但如果我尝试
example.com/videos/123/text
CMS会以某种方式覆盖此规则。只需确保此规则是
RewriteEngine
行之后的第一条规则。它位于第一行,但仍然不起作用:
RewriteEngine on RewriteRule^(视频)/(\d+/[\w-]+/?$/$1/浏览[L,NC,R=301,NE]重写基/重写规则^index\.php$-[L]重写cond%{REQUEST\u FILENAME}!-f RewriteCond%{REQUEST\u FILENAME}!-重写规则^(.*)/?$index.php[L]
不要紧,我只是重试了一下,它就可以工作了。谢谢你的帮助