我有一个joomla网站,该网站具有多个永久重定向([R = 301,L])和标准的joomla重定向:
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
我的网站上有一个这样的页面:
https://mywebsite/e-shop
要么
https://mywebsite/e-shop?filter=somewords
我希望它成为:
https://mywebsite/e-shop
要么
https://mywebsite/e-shop-somewords
唯一可行的方法是:
RewriteRule ^e-shop-somewords$ /e-shop?filter=somewords [R=301,L]
但这不是我想要的。 所以我做了这些尝试:
RewriteRule ^e-shop-([a-z]+)$ /e-shop?filter=$1 [NC,L]
RewriteRule ^e-shop-somewords$ /e-shop?filter=somewords [NC,L]
RewriteRule ^e-shop-somewords$ /e-shop?filter=somewords [QSA]
但是我总是能看到joomla 404页面。
编辑:我了解会发生什么,我打电话给https://mywebsite/e-shop-somewords,然后应用了我的规则,因此新页面是https://mywebsite/e-shop?filter=somewords,该页面适用于joomla,但实际上并不存在,因此应用了joomla规则,页面是https://mywebsite/index.php 问题是我假设joomla使用的uri是/ e-shop-somewords,而joomla并不存在该页面,所以我得到了404。