我将其粘贴到我的 Magento 网站的 .htaccess 中现有的 mod_rewrite 部分下方。
我需要对其进行修改以实现一个短网址方案,该方案会将所有请求mysite.com/-jk7ASD63
(如所有以破折号开头的短网址)重定向为mysite.com/cartroute/cartlink?shortcode=jk7ASD63
(删除破折号的长网址)。
我相信这是要添加的正确行(我在这里测试过https://htaccess.madewithlove.com/):
RewriteRule ^-([a-zA-Z0-9]+)$ cartroute/cartlink?shortcode=$1 [L]
我尝试在 mod_rewrite 部分内的各个位置添加此行,但每次都会产生我无法理解的循环问题...当然,一旦创建了完整的路由,它会再次经过 mod_rewrite,但为什么它不重定向到正确的链接?
.htaccess 的当前 mod_rewrite 部分:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^api/rest api.php?type=rest [QSA,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
RewriteRule .* - [L,R=405]
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
Header set X-Content-Type-Options: nosniff
BrowserMatch \bMSIE\s8 ie8
Header set X-XSS-Protection: "1; mode=block" env=!ie8
</IfModule>
</IfModule>
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/index.php/
RewriteRule .* index.php [L]
</IfModule>