Web服务器是Apache。我想重写URL,以便用户不知道实际目录。例如:
原始网址:
www.mydomainname.com/zh-CN/piecework/piecework.php?piecework_id=11
预期网址:
piecework.mydomainname.com/zh/11
我在.htaccess中添加了以下语句:
RewriteCond %{HTTP_HOST} ^(?!www)([^.]+)\.mydomainname\.com$ [NC]
RewriteRule ^(w+)/(\d+)$ /$1/%1/%1.php?%1_id=$2 [L]
当然,我用域名替换了mydomainname。
.htaccess位于站点根目录中,但是当我访问piecework.mydomainname.com/en/11时,出现“找不到对象”。(当然,我用域名替换了mydomainname。)
我在.htaccess中添加了以下语句:
RewriteRule ^/(.*)/en/piecework/(.*)piecework_id=([0-9]+)(.*) piecework.mydomainname.com/en/$3
当然,我用域名替换了mydomainname。
.htaccess位于站点根目录中,但是当我访问piecework.mydomainname.com/en/11时,出现“找不到对象”。(当然,我用域名替换了mydomainname。)
怎么了?
最佳答案
尝试在您的vhost或server-conf中使用RewriteLog,以检查重写过程。现在,您似乎只是在猜测mod_rewrite的功能。
通过使用RewriteLogLevel,您可以修改日志记录的扩展。对于初学者,我建议等级5。
PS:不要忘记在修改配置后重新加载/重新启动服务器。