.htaccess重写规则在生产中不起作用

时间:2015-09-04 12:43:04

标签: apache .htaccess mod-rewrite url-rewriting

使用Apache 2。 我需要在http://website.dev/file-name.php中重写http://website.dev/file-name中所有请求的网址。

以下是.htaccess文件:

RewriteEngine On

SetEnv "ENVIRONMENT" "production"
SetEnv "BASE_URL" "http://website.dev"

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.php$  $1

ErrorDocument 404 /404.php

该解决方案完美适用于登台服务器,但在生产时(已启用mod_rewrite),请求http://website.dev/file-name似乎无效并导致显示404.php文件。

我缺少什么?是否有任何逻辑或服务器配置问题?

1 个答案:

答案 0 :(得分:1)

这应该做

ErrorDocument 404 /404.php
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/?$ $1.php [NC,L]