当访问者对我的子域执行请求时,我想将访问者重定向到我的主域,然后是不匹配的 URI。
例如,访问者可以访问资源,sub.domain.com/product/10
但当domain.com
他尝试访问与product/:id
我的子域不匹配的其他资源(如sub.domain.com/anOtherResource
.
我必须用 apache 重写模块来做到这一点。我发现!
操作员可以完成这项工作,但它不适合我。
这是我的 .htaccess 文件中的重写配置:
RewriteCond %{HTTP_HOST} sub\.domain\.com
RewriteCond %{REQUEST_URI} !^/product/[0-9]+$
RewriteRule ^(.*)$ http://www.domain.com [L,R]
我还测试了这个配置:
RewriteCond %{HTTP_HOST} sub\.domain\.com
RewriteRule !^/product/[0-9]+$ http://www.domain.com [L,R]
不知道哪里错了。。。
[编辑]
.htaccess 文件是为 Wordpress 配置的。这是整个 .htaccess :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} sub.domain.com
RewriteCond %{REQUEST_URI} !^/product/[0-9]+$
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>