我正在尝试使用 Apache vhosts 配置控制我网站上的重定向。
我有两个字母的区域设置,例如/fr
, /de
, /es
,我目前正在忽略它,您将从下面的 vhosts 文件中看到。但是,我也有一个 301 永久重定向设置来重定向 /cm (和/fr/cm
,/es/cm
等等)到另一个页面 - 这是在我的后端系统中控制的。
复杂之处在于,当我添加被 RewriteCond 捕获的行时,RewriteCond %{REQUEST_URI} !^/cm
然后我根本无法访问/fr
,/de
等,因为它们似乎陷入了循环并转到:然后是 HTTP 500 内部服务器错误。/es
www.ayrshireminis.com/fr/fr/fr/fr/fr/fr/fr/fr
我如何更改 RewriteCond 以允许:
- /pa(这将被重定向到 /minis,但它在数据库中控制,需要保持为有效 URL)
- /fr(地区)
- /fr/pa
- /es/pa
等等
# ----------------------------------------------------------------------
# REGION SPECIFIC REDIRECTIONS
# Below will remove region specific part of URL and load content from main UK site
# ----------------------------------------------------------------------
RewriteCond %{REQUEST_URI} ^/([a-z]{2})$ [OR]
RewriteCond %{REQUEST_URI} ^/([a-z]{2}/)(.*)$
RewriteCond %{REQUEST_URI} !^/cm
RewriteRule ^([a-z]{2}/|[a-z]{2})(.*)$ /$2 [L,QSA]
# For VirtualDocumentRoot development instance configurations
RewriteRule ^([^.]+)$ /index.php?url=$1 [L,QSA]