我将所有传入我网站的 URL 请求都转换为 GET 参数,因此我fruits.com/apple
的fruits.com/?url=apple
路由机制负责显示正确的视图。
.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule .* index.php?url=$0 [QSA,L]
这工作正常。但是我现在有一些例外,我希望这些 URL 重定向到主页。Redirect
与上述规则冲突:
Redirect /pineapple /
Redirect /grapes /
这重定向到fruits.com/?url=pineapple
而不是仅仅fruits.com
.
如何进行干净的重定向到fruits.com
?
可怕的解决方案
我可以想到一个解决方案,除了几个例外之外,它非常不优雅:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteCond %{REQUEST_URI} !^/pineapple$
RewriteCond %{REQUEST_URI} !^/grapes$
RewriteRule .* index.php?url=$0 [QSA,L]
Redirect /pineapple /
Redirect /grapes /