【问题标题】:.htaccess not working with dot (e.g., .html) [closed].htaccess 不适用于点(例如 .html)[关闭]
【发布时间】:2013-07-09 00:11:41
【问题描述】:

我现在的.htaccess是这样的

RewriteBase /
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ article_page.php?id=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ article_page.php?id=$1

这足以像 example.com/how-stuff-works 那样重写 URL,因为网站运行良好

但是,如果我想将 .html 添加到末尾,例如 example.com/how-stuff-works.html,则会出现 404 错误。

请帮助我修改我的 .htaccess 文件,以便它也可以集成 Dot 或 (.html)。

【问题讨论】:

  • 需要紧急帮助......为此......需要一些适当的代码集成。

标签: html .htaccess url-rewriting


【解决方案1】:

用这个替换两个RewriteRules

RewriteRule ^([\w.-]+)/?$ article_page.php?id=$1
  • \w = [A-Za-z0-9_]
  • /? 使 / 可选

但是,如果您还想在将路径传递给 id 之前删除扩展名 .html,请使用

RewriteCond %{REQUEST_URI} !/article_page.php
RewriteRule ^([\w-]+)(/|\..+)?$ article_page.php?id=$1 [L]

【讨论】:

  • 404 错误消失了,但是当我插入此规则 testing.ligerworld.com ^([\w.-]+)/?$ article_page.php?id= 时,它无法从数据库中提取值$1 所以请进一步帮助:)
  • 试试第二条规则。第一个重定向的 id 为 id=how-stuff-works.html
  • 还有其他解决方案吗?我也试过第二个,但你仍然可以看到网址,它们不起作用。事实上,他们并没有从数据库中提取数据。有什么进一步的建议和见解吗?谢谢和问候.....
  • @user2557872,如果您可以使用当前行为更新您的问题,即使用的源网址和您被重定向到的实际网址,这将有所帮助。您可以将 [R=301] 暂时放在规则之后以查看。我还假设您的 web 根目录中有 htaccess。
  • 源 URL 是 link 我已将 [R=301] 放在规则(您的规则)之后,它表示该页面未正确使用此 url link 重定向。对此有何建议?你怎么看?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-09
  • 2014-11-16
  • 2020-01-20
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
相关资源
最近更新 更多