0

我需要将 /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]

任何帮助都会很棒。

4

1 回答 1

0

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

所以你需要改变

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

使用相对路径方法,所以像

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

注意模式更改的开始和结束:开始处的问号负责将规则应用于相对绝对路径,最后负责在请求结束时也应用规则用斜线。

一般来说,您应该更喜欢将这些规则放在真实的 http 服务器主机配置中,而不是依赖于动态配置文件。

于 2018-11-21T11:44:46.593 回答