1

我使用 Htaccess 文件将我的网站子域重写为我网站上的相关文件。例如:

http://articles.mysite.com --> http://mysite.com/articles 我写了这段代码:

RewriteCond %{HTTP_HOST} !^www.mysite.*
RewriteCond %{HTTP_HOST} ^([^.]+).mysite.*
RewriteRule ^$ ./%1 [L] 

但是当我想使用这个时:

http://articles.mysite.com/some/some --> http://mysite.com/articles/some/some

上面的代码无法正常工作并将我重定向到 404 NotFound Page

注意:在我的 .htaccess 文件的另一个地方,我有RewriteRule ^some/(.*)$ ./some.php?id=$1 [L]

4

1 回答 1

0

只需将您的规则更改为:

RewriteRule ^(.*)$ /%1/$1 [L]

并添加一个条件以防止循环:

RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -d

所以你有了:

RewriteCond %{HTTP_HOST} !^www.mysite.*
RewriteCond %{HTTP_HOST} ^([^.]+).mysite.*
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -d
RewriteRule ^(.*)$ /%1/$1 [L]
于 2013-09-09T19:24:42.477 回答