htaccess重定向除子域和文件夹之外的所有内容

时间:2013-11-21 12:13:37

标签: apache .htaccess mod-rewrite redirect subdomain

我正在尝试将我的整个域www.example.de重定向到www.domain.de/artikel.html,除了3个子域(以及那里的所有内容)和2个文件夹(以及其中的所有内容):

RewriteCond %{REQUEST_URI} !^/folder1/subfolder2/?$ [NC]
RewriteCond %{REQUEST_URI} !^/folder2/?$ [NC]
RewriteCond %{HTTP_HOST} !^static1\.example\.de$ [NC]
RewriteCond %{HTTP_HOST} !^static2\.example\.de$ [NC]
RewriteCond %{HTTP_HOST} !^static3\.example\.de$ [NC]
RewriteCond %{HTTP_HOST} ^(\w+)\.example\.de [NC]
RewriteRule ^(.*)$ http://www.domain.de/artikel.html [R=301,L]

但它只是将www.example.de的所有内容重定向到www.domain.de/artikel.html,但不会重定向http://example.de的任何内容。

任何提示或解决方案对我来说? 谢谢!

1 个答案:

答案 0 :(得分:1)

问题在于这种情况会导致重定向仅针对子域发生:

RewriteCond %{HTTP_HOST} ^(\w+)\.example\.de [NC]

将其替换为:

RewriteCond %{HTTP_HOST} (\.|^)example\.de [NC]

或者如果您的htaccess仅附加到一个站点(example.de),则可以完全删除它

你的htaccess将是:

RewriteCond %{REQUEST_URI} !^/folder1/subfolder2/?.*$ [NC]
RewriteCond %{REQUEST_URI} !^/folder2/?.*$ [NC]
RewriteCond %{HTTP_HOST} !^static1\.example\.de$ [NC]
RewriteCond %{HTTP_HOST} !^static2\.example\.de$ [NC]
RewriteCond %{HTTP_HOST} !^static3\.example\.de$ [NC]
RewriteCond %{HTTP_HOST} (\.|^)example\.de [NC]
RewriteRule .* http://www.domain.de/artikel.html [R=301,L]