apache - 使用 mod_rewrite 重写 URL 以提供 RESTful URL

标签 apache .htaccess rest mod-rewrite url-rewriting

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/

相关文章:

java - 如何使用 Jackson 编写嵌套 JSON?

PHP 不会在 Raspberry Pi 上的 Apache 中与 MySQL 接口(interface)

apache - Silex 位于本地主机 : "Sorry, the page you are looking for could not be found" 上的子目录中

java - 从另一个服务调用 Rest 服务以使用 spring 引导进行类(class)注册系统

apache - htaccess 无法很好地重写隐藏扩展名

php - 我没有获得所需的 URLRewrite

c# - WCF 消耗多个可能的 REST 响应

php - 访问Apache上的MYSQL数据库

php - 设置的最大cURL连接数是多少?

c++ - 服务器监听本地主机:8080 can Apache still listen to port 80?