我已经阅读了几个网址重写帖子,但没有任何帮助我。
基本上在网站上我们有以“.html”(http://www.domain.com/page.html
)结尾的页面,我们还保留了其他一些子域名(http://www.domain.com/subdomain.com
)
所以我试图解决这个问题:http://www.domain.com/subdomain.com
要重定向到:/www/subdomain.com/index.php
我尝试了这个,但是它出了点问题:
RewriteCond %{QUERY_STRING} !\.html$
RewriteCond %{QUERY_STRING} ^([^/.]+)\.([^/.]+)/?$
RewriteRule /www/%1.%2/index.php [L]
我认为我误解了RewriteCond的用法,但我无法找到如何正确使用它。 我错过了什么?
谢谢, 罗布
答案 0 :(得分:4)
这应该接近:
RewriteCond %{QUERY_STRING} !\.html$
RewriteRule ^([^/.]+)\.([^/.]+)/(.*) /www/$1.$2/index.php?file=$3 [QSA,NC,L]
请注意,我已将最后一部分添加为index.php
的查询参数。
哦顺便说一下:
如果这还不够:
如果您在托管环境中不(=如果它是您自己的服务器而您可以修改虚拟主机,不仅仅是.htaccess
文件),尝试使用RewriteLog
指令:它可以帮助您找出这些问题:
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On
我最喜欢检查regexp的工具:
http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)