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:不要忘记在修改配置后重新加载/重新启动服务器。

08-04 15:29