【问题标题】:HTACCESS Mod_Rewrite TroublesHTACCESS Mod_Rewrite 问题
【发布时间】:2012-09-27 08:48:18
【问题描述】:

我的 mod_rewrite 有点问题,我在以前的 litespeed VPS 上运行得非常好。现在我用的是自己的专用服务器,运行CentOS 6,所以不知道是不是配置不正确。

这是它目前的样子:

http://***.com/?pageName=FourthPage

这就是我想要的样子:

http://***.com/FourthPage

这是我当前的 .htaccess 文件:

RewriteEngine On

RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule ^([^/\.]+)/?$ index.php?pageName=$1

【问题讨论】:

  • 那么实际的问题是什么?设置是否按预期工作?
  • 不,目前没有。它曾经可以工作,但由于我更改了 Web 服务器,它不再工作了。
  • 嗯,“它不再工作”是什么意思?
  • 它基本上什么都不做,URL 没有被外部重写。所以 URL 看起来像第一个示例。

标签: apache .htaccess url mod-rewrite


【解决方案1】:

我不擅长 htaccess 语法。如果您有权访问,则应直接在服务器配置中配置此类规则。将 htaccess 用于此类目的只是一种解决方法。然而:

RequestRule 中的模式是错误的。尤其是尾部斜杠 ('/')。匹配是什么意思?您可能需要再次阅读该规则的文档。该模式与完整的 URL 不匹配,而在 htaccess 的情况下仅与路径的一部分匹配。

尝试以下方法:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ index.php?pageName=$1

您还应该在服务器内启用重写日志记录。相关的配置选项是 RewriteLog(用于文件)和 RewriteLogLevel(嗯,用于级别...)。它有助于理解重写模块内部发生了什么。但是,这也不能在 htaccess 中完成,您需要访问服务器的常规配置。

【讨论】:

  • 不,仍然无法正常工作:/ 哎呀这让我很烦。
  • 同样的问题:“不工作”是什么意思?特别是:重写日志说什么?
猜你喜欢
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 2016-07-14
相关资源
最近更新 更多