将重定向/重写规则从IIRF过滤器移动到htaccess

时间:2013-04-13 15:34:26

标签: php apache .htaccess

我将PHP网站从本地托管的IIS 6服务器移动到Pagoda Box。此网站以前在Coldfusion中编码,直到最近,我才用PHP重新编码。对于Google Analytics,我在提供correspodnig .php文件的同时,将所有外向链接扩展为免费:

<a href="link">My Link</a>

REQUEST:

/link

BROWSER BAR:

 http://www.example.com/link

响应:

/link.php

我以前一直在使用Ionic Shade IIRF重写过滤器,现在显然会使用htaccess。我以前的IIRF规则看起来像这样:

RedirectRule ^/([A-Za-z0-9_\-]+)\.cfm((\?.*)|())$   /$1$2 [R=301]

RewriteRule ^/([A-Za-z0-9_\-]+)((\?.*)|())$   /$1.php$2

所以,在我的htaccess文件中,我试过这个:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^example\.pagodabox\.com [NC]
RewriteRule ^([A-Za-z0-9_\-]+)((\?.*)|())$ $1.php$2 [R=301,L]

我的无扩展链接使用任何查询字符串提供正确的.php文件。但是,您会在浏览器栏中看到.php扩展名。我如何修改我的htaccess文件,使其功能与我以前的IIRF规则相同?

1 个答案:

答案 0 :(得分:1)

您必须删除R=301标记。

此标志使Web服务器向浏览器发送Location响应并强制浏览器请求新URL。