我正在尝试将我的域名重定向到新的文档根目录如果 cookie 值是某样东西。我确实设置了重写,并且它工作正常。
RewriteLog "/home/user/dev/logs/rewrite.log"
RewriteLogLevel 3
RewriteCond %{HTTP_COOKIE} !^new_layout_v1_dev$
RewriteCond $1 !^php5.fastcgi [NC]
RewriteRule ^/(.*)$ /home/user/dev/user.dev/htdocs/$1 [C]
我遇到的问题是,该网站有一个rewrite.conf
配置文件来重写 SEO 友好 URL。当文档根目录重定向将我重定向到新的文档根目录时,它不会加载下一个重写或新文档根目录中的配置。
错误:
The requested URL /testime-pilte-2655600.html was not found on this server.
由于我们在 Web 应用程序中使用 SEO 友好的 URL,并通过重写规则将它们重定向到正确的 php 文件,因此当rewrite.conf
未加载时,网页将显示not found
错误。
所以我的问题是,如何使文档根重写工作,以便它也能加载新的文档根重写配置。
答案1
如果rewrite.conf
被包含在<Directory>
标签中或其重写包含在<Directory>
标签内,请尝试将其移出并仅驻留在 VirtualHost 级别。
答案2
这些是我最终重写的结果并且有效:
# Rewrite to old design
RewriteCond $1 !^php5.fastcgi [NC]
RewriteCond %{HTTP_COOKIE} ^((?!new_layout).)*$
RewriteRule ^/(.*)$ /home/user/dev/user.dev/htdocs/$1 [L]
# Rewrite to new design
RewriteCond $1 !^php5.fastcgi [NC]
RewriteCond %{HTTP_COOKIE} !^new_layout$
RewriteRule ^/(.*)$ /home/user/dev/user.dev/htdocs/$1 [L]