2015-09-04 55 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]