.htaccess文件不存在时重定向

问题描述:

因此,我使用.htaccess将旧网站页面重定向到新的网站页面。在我的文件基本的规则是这样的:.htaccess文件不存在时重定向

重定向301 /faqs.php http://blueprintprep.com/classroom/faq

奇怪的是,当旧的文件服务器上存在它工作正常,但是当我删除文件,最终实际网址看起来是这样的:

http://blueprintprep.com/classroom/faq?/faqs.php

什么蓝色大火是怎么回事?

该文件是由一帮这些规则,这对笨:

RewriteEngine叙述在 RewriteBase/ 的RewriteCond%{REQUEST_URI} ^系统* 重写规则^(。*)$ /指数。 .PHP?/ $ 1 [L] 的RewriteCond%{REQUEST_URI} ^应用。* 重写规则^(。*)$ /index.php?/$1 [L]

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

RewriteRule ^application_consulting/(.*) http://blueprintprep.com/oneonone/app_consulting [R=301,L] 
RewriteRule ^weekend/(.*) http://blueprintprep.com/classroom [R=301,L] 
RewriteRule ^workshop/(.*) http://blueprintprep.com/oneonone [R=301,L] 

+0

htaccess文件还有什么? – 2011-04-13 21:22:37

您可以改用mod_rewrite

RewriteEngine on 
RewriteRule ^/faqs.php$ /classroom/faq [L,R=301] 

无论文件是否存在,这都会起作用。

希望有所帮助。

+0

谢谢,这个作品很棒:)我仍然好奇为什么当文件不存在时会出现奇怪的结果? – SideDishStudio 2011-04-13 21:41:17

+1

它看起来像是你的第一个'RewriteRule','RewriteRule ^(。*)$ index.php?/ $ 1 [L]'的结果。我不确定'index.php'在哪里,但这是我的第一个想法。 – clmarquart 2011-04-13 21:44:45

+0

其实,我刚刚看到它的重写,而不是重定向,所以它不应该影响实际的URL ... – clmarquart 2011-04-13 21:45:55