Web 服务器是 Apache。我想重写 URL,这样用户就不知道实际的目录。例如: 原网址:
www.mydomainname.com/en/piecework/piecework.php?piecework_id=11
预期网址:
piecework.mydomainname.com/en/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。)
怎么了?
最佳答案
尝试使用 RewriteLog在您的 vhost 或 server-conf 中以检查重写过程。现在您似乎只是在猜测 mod_rewrite 的作用。
通过使用 RewriteLogLevel您可以修改日志记录的扩展。对于初学者,我推荐级别 5。
PS:修改配置后不要忘记重新加载/重启服务器。
关于apache - 使用 mod_rewrite 重写 URL 以提供 RESTful URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2467302/