【问题标题】:PHP URL Rewrite doesn't work on specific serverPHP URL重写在特定服务器上不起作用
【发布时间】:2013-05-12 06:21:05
【问题描述】:

我的 URL 重写在我的测试服务器上完美运行,但在实时服务器上却不行。

我联系了支持团队,他们告诉我,我的托管计划中已经启用了 mod_rewrite。

这是我的 .htaccess 文件

RewriteEngine On
RewriteRule ^index.html$ index.php [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ work-tag.php?d=$1&t=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ work-tag.php?d=$1&t=$2
RewriteRule ^([a-zA-Z0-9_-]+)$ work.php?d=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ work.php?d=$1

有什么问题吗? 谢谢

【问题讨论】:

  • 你得到了什么结果?你查看过 RewriteLog 吗?
  • 404 - 找不到页面!
  • 如果 mod_rewrite 被禁用,你会得到 500,所以规则不会触发。您是否安装在子文件夹或类似的东西中?
  • @Niels,是的,该站点安装在子文件夹中,并且域名正在转发到该子文件夹。我们是否应该将站点移至根目录并禁用域转发来解决该问题?谢谢
  • 当我尝试在该服务器上使用友好的 URL 时得到 404。 tinyurl.com/brekjx4

标签: php mod-rewrite friendly-url


【解决方案1】:

我遇到了同样的问题,但如果您被问及是否已启用 mode_rewrite - 请检查一下。有人告诉我同样的事情,但我没有发现我的 htaccess 工作,所以我自己检查了它。而且我发现 mod_rewrite 仍然关闭。

 phpinfo();

并查看“加载的模块”。如果您看到它,那么服务器不是问题。并且需要更进一步。

【讨论】:

  • 感谢您的提示。这是 phpinfo 页面tinyurl.com/dy7563s - 在那里找不到 mod_rewrite!它没有启用,对吧?
  • 服务器在 CGI 上运行 PHP,所以它看不到任何关于 Apache 的信息。就像我上面说的那样,该模块已启用,否则您会在命令上收到 500 错误。
【解决方案2】:

我终于按照朋友的建议添加了以下行来修复它。

RewriteBase /

感谢你们的跟进:)

【讨论】:

    猜你喜欢
    • 2015-04-01
    • 2018-04-13
    • 1970-01-01
    • 2016-10-31
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多