重定向子目录后的所有内容,保留URL

时间:2018-11-21 11:38:47

标签: .htaccess redirect

我需要将/ acatalog / vvv-123重定向到/ vvv-123

这是我目前在.htaccess文件中拥有的内容:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^/acatalog/([^/]+)/$ /$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

您需要了解,动态配置文件中的RewriteRules在 relative 路径中运行,这与在实际的http服务器中定义此类规则时使用的 absolute 路径相反主机配置。这就是为什么您的规则不适用的原因。顺便说一下,这是有据可查的...

所以您需要更改

RewriteRule ^/acatalog/([^/]+)/$ /$1 [L]

使用相对路径方法,例如

RewriteRule ^/?acatalog/([^/]+)/? /$1 [L]

请注意模式更改的开始和结束:开始处的问号要注意将规则应用于相对的绝对路径,最后要注意如果请求 not 以斜杠结尾,则规则也会应用。

通常,您应该更喜欢将此类规则放置在实际的http服务器主机配置中,而不是依赖于动态配置文件。