.htaccess 使用htaccess进行特殊重命名

.htaccess 使用htaccess进行特殊重命名,.htaccess,.htaccess,我正在尝试使用.htaccess对URL进行一些更改。 我需要从以下内容重写或重定向: example.com/masonry_gallery/project1 为此: example.com/project1-detalle 换句话说,就是删除/marysis\u gallery/部分,并在URL末尾添加“-detalle” 我试过好几种组合,但运气不好。如果有人能帮我一把,我将不胜感激 更新:这就是htaccess文件现在的样子: RewriteRule ^masonry_gallery

我正在尝试使用
.htaccess
对URL进行一些更改。 我需要从以下内容重写或重定向:

example.com/masonry_gallery/project1
为此:

example.com/project1-detalle
换句话说,就是删除
/marysis\u gallery/
部分,并在URL末尾添加“-detalle”

我试过好几种组合,但运气不好。如果有人能帮我一把,我将不胜感激

更新:这就是htaccess文件现在的样子:

RewriteRule ^masonry_gallery/(project1)$ /$1-detalle [R,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
RewriteRule^砌体_画廊/(项目1)$/$1-detalle[R,L]
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress

根据您的示例,它是一对一重定向。请尝试
.htaccess
文件中的:

RedirectMatch 302 ^/masonry_gallery/(project1)$ /$1-detalle
RewriteRule ^masonry_gallery/(project1)$ /$1-detalle [R,L]
这假设您尚未将mod_rewrite用于其他重写/重定向

更新:由于您使用的是WordPress(使用mod_rewrite),请在
.htaccess
文件顶部尝试以下操作:

RedirectMatch 302 ^/masonry_gallery/(project1)$ /$1-detalle
RewriteRule ^masonry_gallery/(project1)$ /$1-detalle [R,L]
仅当您确定其工作正常时(如果这是永久重定向),才将其更改为301。即,将
R
更改为
R=301

将来还会有一些其他的项目,所以URL上写着“project1”的部分可能会改变,包括project2、project3、project4等等。。。你能考虑这个包含一些(*)或需要的值,以便它与<强>任何数字< /强>? 通过“数字”,我假定数字为0-9(但至少为1位),然后尝试以下操作:

RewriteRule ^masonry_gallery/(\d+)$ /$1-detalle [R,L]

从你的例子来看,这是一个一对一的重定向。请尝试
.htaccess
文件中的:

RedirectMatch 302 ^/masonry_gallery/(project1)$ /$1-detalle
RewriteRule ^masonry_gallery/(project1)$ /$1-detalle [R,L]
这假设您尚未将mod_rewrite用于其他重写/重定向

更新:由于您使用的是WordPress(使用mod_rewrite),请在
.htaccess
文件顶部尝试以下操作:

RedirectMatch 302 ^/masonry_gallery/(project1)$ /$1-detalle
RewriteRule ^masonry_gallery/(project1)$ /$1-detalle [R,L]
仅当您确定其工作正常时(如果这是永久重定向),才将其更改为301。即,将
R
更改为
R=301

将来还会有一些其他的项目,所以URL上写着“project1”的部分可能会改变,包括project2、project3、project4等等。。。你能考虑这个包含一些(*)或需要的值,以便它与<强>任何数字< /强>? 通过“数字”,我假定数字为0-9(但至少为1位),然后尝试以下操作:

RewriteRule ^masonry_gallery/(\d+)$ /$1-detalle [R,L]

谢谢你的回复。我试过你的建议,但还不起作用。可能是因为我们的htaccess中有其他条件,正如您在最后提到的。这是当前的htaccess文件:#在RewriteBase/RewriteRule^index\.php$-[L]RewriteCond%{REQUEST_FILENAME}上启动WordPress RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-重写规则/index.php[L]RedirectMatch 302^(/massy_gallery/project1)$$1-detalle#END wordpress不确定我是否做得很好,但仍然不起作用。它似乎是做了一些重定向,但结果是把我带到主页。这就是htaccess文件现在的样子:RewriteRule^rule\u gallery/(project1)$/$1-detalle[R,L]#在RewriteBase上启动WordPress RewriteEngine/RewriteRule^index\.php$-[L]RewriteCond%{REQUEST\u FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则/index.php[L]#结束WordPress-----还有一件事要提,未来还会有其他一些项目,所以url上写着“project1”的部分可能会改变,包括project2、project3、project4等等。。。请您考虑一下,以使它能与任何数字一起工作,包括(*)或所需的值吗?再次感谢你的帮助“做一些重定向”?什么意思?不止一个重定向?在浏览器中检查网络流量-您看到了什么?如果您直接请求
/project1 detalle
,它是否有效?我已经更新了我的答案,可以使用“任意数字”。(但如果之前的指令不起作用,那么这也不太可能起作用。)问题解决了!。该行末尾缺少一个“/”,因此无法直接编辑htaccess文件。这是使用插件完成的。出于某种原因,WordPress的管理方式有所不同。谢谢你的帮助。谢谢你的回复。我试过你的建议,但还不起作用。可能是因为我们的htaccess中有其他条件,正如您在最后提到的。这是当前的htaccess文件:#在RewriteBase/RewriteRule^index\.php$-[L]RewriteCond%{REQUEST_FILENAME}上启动WordPress RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-重写规则/index.php[L]RedirectMatch 302^(/massy_gallery/project1)$$1-detalle#END wordpress不确定我是否做得很好,但仍然不起作用。它似乎是做了一些重定向,但结果是把我带到主页。这就是htaccess文件现在的样子:RewriteRule^rule\u gallery/(project1)$/$1-detalle[R,L]#在RewriteBase上启动WordPress RewriteEngine/RewriteRule^index\.php$-[L]RewriteCond%{REQUEST\u FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则/index.php[L]#结束WordPress-----还有一件事要提,未来还会有其他一些项目,所以url上写着“project1”的部分可能会改变,包括project2、project3、project4等等。。。请您考虑一下,以使它能与任何数字一起工作,包括(*)或所需的值吗?再次感谢你的帮助“做一些重定向”?什么意思?不止一个重定向?在浏览器中检查网络流量-您看到了什么?如果您直接请求
/project1 detalle
,它是否有效?我已经更新了我的答案,可以使用“任意数字”。(但如果先前的指令不起作用,那么这不太可能起作用。)