0

我的 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
4

1 回答 1

1

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

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

尝试以下方法:

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

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

于 2012-09-27T14:53:49.580 回答