【问题标题】:I would like to use Rewrite rule to clear my url [closed]我想使用重写规则来清除我的网址 [关闭]
【发布时间】:2015-01-11 13:12:49
【问题描述】:

我想通过在 .htacces 中使用 RewriteRule 来清除我的 url。

我想将 /product/detail.php?id=red-shirt 更改为类似 /product/red-shirt 的内容。

我尝试使用此 RewriteRule ^/?product/([^/d]+)/?$ /product/detail.php?id=$1 [L,QSA] 但确实如此不工作。

【问题讨论】:

  • 不应该是\d而不是/d吗?
  • 编辑您的问题并定义“不起作用”。您是否收到错误(404、500),如果生成任何错误,服务器日志中的错误是什么,您最终在浏览器中得到什么 url。当您访问该 url 时,您的计算机是否会在独角兽云中爆炸?另请注意,编辑器中有一个格式为代码按钮(带有{} 的按钮)。选择您的代码并单击该按钮。
  • 除了@Sumurai8 的评论,启用重写日志并检查其内容。

标签: php mysql .htaccess mod-rewrite clean-urls


【解决方案1】:

您收到 404 是因为您的正则表达式错误。使用此规则来解决此问题:

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^product/([^/]+)/?$ /product/detail.php?id=$1 [L,NC,QSA]

【讨论】:

    【解决方案2】:

    我总是会收到 404 错误。 如果我将 /d 更改为 \d 我将收到内部服务器错误 500

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 2014-01-08
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多