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
.htaccess-用正斜杠[regex?]_Regex_.htaccess_Regex Lookarounds - Fatal编程技术网

.htaccess-用正斜杠[regex?]

.htaccess-用正斜杠[regex?],regex,.htaccess,regex-lookarounds,Regex,.htaccess,Regex Lookarounds,我有以下格式的xxxx的URL: http://www.example.com/sub/worda-wordb-wordc/123456789 http://www.example.com/sub/worda-wordb-wordc-123456789 但是,我有以下格式的URL指向我的网站的外部链接: http://www.example.com/sub/worda-wordb-wordc/123456789 我想重定向来自的所有URL http://www.example.com/sub

我有以下格式的xxxx的URL:

http://www.example.com/sub/worda-wordb-wordc/123456789
http://www.example.com/sub/worda-wordb-wordc-123456789

但是,我有以下格式的URL指向我的网站的外部链接:

http://www.example.com/sub/worda-wordb-wordc/123456789
我想重定向来自的所有URL

http://www.example.com/sub/worda-wordb-wordc/123456789


http://www.example.com/sub/worda-wordb-wordc-123456789

您可以使用此
.htaccess
文件:

RewriteBase /
RewriteRule ^sub/(.*)/([0-9]+)$ /sub/$1-$2
现在如果您转到
http://www.example.com/sub/worda-wordb-wordc/123456789
url将被重写为
http://www.example.com/sub/worda-wordb-wordc-123456789


如果这不是您想要的,请在问题中添加更多详细信息。

您可以使用此
.htaccess
文件:

RewriteBase /
RewriteRule ^sub/(.*)/([0-9]+)$ /sub/$1-$2
现在如果您转到
http://www.example.com/sub/worda-wordb-wordc/123456789
url将被重写为
http://www.example.com/sub/worda-wordb-wordc-123456789


如果这不是您想要的,请在问题中添加更多详细信息。

请尝试以下操作:

重新编写引擎打开
#用最后一个斜杠重定向URI,替换为连字符
重写规则^sub/([\w-]+)/(\d+)/?$/sub/$1-$2[R=302,L]
在这里,我们检查字母、数字、下划线和连字符是否为
([\w-]+)
,数字是否为
(\d+)
,最后是否有可选的斜杠,是否为
/?
,然后相应地重定向它


请确保将此作为第一条规则之一,然后将
302
更改为
301
,以使重定向被浏览器和搜索引擎缓存。

请尝试以下操作:

重新编写引擎打开
#用最后一个斜杠重定向URI,替换为连字符
重写规则^sub/([\w-]+)/(\d+)/?$/sub/$1-$2[R=302,L]
在这里,我们检查字母、数字、下划线和连字符是否为
([\w-]+)
,数字是否为
(\d+)
,最后是否有可选的斜杠,是否为
/?
,然后相应地重定向它


确保这是您的第一条规则之一,然后将
302
更改为
301
,以使重定向被浏览器和搜索引擎缓存。

您可以在站点根目录中使用此规则。htaccess:

RedirectMatch 301 ^(sub)/(.*)-(\d+)/?$ /$1/$2/$3

您可以在站点根目录中使用此规则。htaccess:

RedirectMatch 301 ^(sub)/(.*)-(\d+)/?$ /$1/$2/$3

谢谢-我的意思是不要反过来重写,所以我将其改为:RewriteBase/RewriteRule^sub/(.*)-([0-9]+)$/sub/$1/$2现在输出为这将在新URL中保留原始的数字集。示例:''变为:''谢谢-本不打算反过来重写,因此我将其更改为:RewriteBase/RewriteRule^sub/(.*)-([0-9]+)$/sub/$1/$2现在输出为这将在新URL中保留原始数字集。示例:“”变为:“”为了澄清,是否要将旧的重定向到新的,然后将新的重写回旧的?请显示您当前
.htaccess
文件的内容。哦,
sub
是动态的吗?sub始终是相同的。要澄清,您是否希望将旧文件重定向到新文件,然后将新文件重写回旧文件?请显示您当前
.htaccess
文件的内容。噢,
sub
dynamic?sub总是一样的