【问题标题】:HTML URL Path RewritingHTML URL 路径重写
【发布时间】:2017-02-07 09:58:17
【问题描述】:

我在本地 MAMP 服务器上运行静态 HTML 文件,我想以“URL 路径”格式将 ID 传递给页面 (user.html)。这是我需要的样子:

http://localhost:8888/mysite/user/3245653/john

  • 用户是html页面。我使用 .htaccess 规则从 url 中删除了 .html 扩展名
  • user/后面的数字是ID参数
  • john 是我需要添加到 url 的另一个参数

这是我的 .htaccess 文件的样子:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

目前的 URL 如下所示:

http://localhost:8888/mysite/user

所以我可以使用?id= 将参数作为查询字符串发送,但我需要使用路径格式

创建该 URL 格式需要进行哪些更改?

【问题讨论】:

  • 投反对票的人解释一下,你为什么投票关闭它?
  • 您使用 firebase-hosting 标记此内容的任何具体原因?好像和那个无关,所以我要去掉标签。

标签: html .htaccess url-rewriting mamp


【解决方案1】:

您需要添加新的重写规则以将其他参数传递到您的页面:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^/]+)/?$ $1.html [L]

RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ $1.html?id=$1&name=$3 [L,QSA]

RewriteRule ^([\w-]+)/([\w-]+)/?$ $1.html?id=$1 [L,QSA]

【讨论】:

  • 现在无法正确读取 CSS。我应该改变 CSS 的路径吗?
  • 另外,如果我希望用户页面使用users/234/john 而产品页面使用products/24342 格式怎么办?所以基本上在产品页面中,用户页面只有1个参数和2个参数
  • 是的,我愿意。所以 2 页,但有 2 种不同的 URL 格式
  • CSS 和 JS 404 问题仍然存在,伙计。重写url后似乎找不到css文件
  • 像魅力一样工作。我不知道为什么有人否决了这个问题哈哈。谢谢兄弟
猜你喜欢
  • 2011-12-27
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
  • 2017-02-23
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
相关资源
最近更新 更多