为 .htaccess 配置新服务器

为 .htaccess 配置新服务器

我有一个新的 LAMP CENTOS 5 服务器,我正在设置并尝试从我拥有的另一个 Web 服务器复制配置。我被困在我认为是 mod_rewrite 问题的地方。如果我去http://old-server.com/any_page_name.php它正确地通过index.php中的某些处理代码进行路由,并向我显示了一条优雅的“无法显示页面”消息。

但如果我去http://new-server.com/any_page_name.php我收到一个丑陋的 Apache 404 Not Found 错误消息。

我查看了两个 httpd.conf 文件,它们都只有一个对 mod_rewrite 的引用。 加载模块 rewrite_module 模块/mod_rewrite.so 看起来这样就没问题了。

在 httpd.conf 的底部我有以下代码:

<VirtualHost *:80>
  ServerAdmin [email protected]
  DocumentRoot /var/www/html
  ServerName new-server.com
  ErrorLog logs/new-server.com-error_log
  CustomLog logs/new-server.com-access_log common
</VirtualHost>

然后在 /var/www/html 的根目录中我有完全相同的 .htaccess 文件,如下所示:

RewriteEngine on
Options +FollowSymlinks

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

ErrorDocument 404 /page-unavailable/

<files ~ "\.tpl$">
order deny,allow
allow from none
deny from all
</files>

所以我不明白为什么 old-server.com 上的页面加载正常,而 new-server.com 却不能像我希望的那样通过 index.php 进行路由。

谢谢。

答案1

您可能需要设置AllowOverride All选项以允许.htaccess 文件。

附注:也许您应该考虑将服务器逻辑移入服务器配置中。

相关内容