我使用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]
答案 0 :(得分: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]