【发布时间】:2012-09-15 23:07:47
【问题描述】:
我正在尝试使用 Apache vhosts 配置来控制我网站上的重定向。
我有两个字母的区域设置,例如/fr、/de、/es,正如您将在下面的 vhosts 文件中看到的那样,我目前忽略了这些区域。但是,我也有一个 301 永久重定向设置来将 /cm(和 /fr/cm、/es/cm 等)重定向到另一个页面 - 这是在我的后端系统中控制的。
复杂性是当我添加行 RewriteCond %{REQUEST_URI} !^/cm 时,这会被 RewriteCond 捕获,但是我无法访问 /fr、/de、/es 等 陷入循环并转到:www.ayrshireminis.com/fr/fr/fr/fr/fr/fr/fr/fr,然后是 HTTP 500 Internal Server Errors。
如何更改 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]
【问题讨论】:
-
你要去哪个 URL 导致你被重定向到
www.ayrshireminis.com/fr/fr/fr/fr/fr/fr/fr/fr?
标签: apache .htaccess redirect vhosts apache-config