2015-09-04 143 views
2

使用Apache 2. 我需要从http://website.dev/file-name.phphttp://website.dev/file-name中重写所有请求的URL。.htaccess重写规则在生产中不起作用

下面是.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文件。

我失踪了什么?有没有逻辑或服务器配置问题?

+2

是不是'重写规则^(。*)\。PHP $ $ 1'做你想要什么样的反向? – anubhava

+1

您是否已将生产服务器上的SetEnv“ENVIRONMENT”“开发”更改为生产? –

+0

@ n01ze是的,我已经改变 –

回答

1

本应该做的

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