【发布时间】:2011-06-18 21:03:12
【问题描述】:
我有一个站点,其中包含一组已放入 CMS 的旧 .html 和 .php 页面。
目前在 .htaccess 文件中大约有 30 个 mod_alias 重定向,格式如下:
redirect 301 /oldpage1.html http://www.example.com/newpage1.php
redirect 301 /oldpage2.php http://www.example.com/newpage2.php
redirect 301 /oldpage3.php http://www.example.com/newpage3.php
但我们想使用 mod_rewrite 在我们的 CMS 中拥有漂亮的 URL,其形式为 http://www.example.com/pagename.php,因此也有以下内容:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1
目前两者正在一起应用,结果是:
http://www.example.com/newpage1.php?page=oldpage1.html
如何仅在 mod_alias 重定向 301 语句未进行匹配时应用重写规则,以便发生以下情况:
http://www.example.com/oldpage1.html -> 重定向到 ->
http://www.example.com/newpage1.php -> 被视为 ->
http://www.example.com/index.php?page=/newpage1.php
任何提示将不胜感激?谢谢。
【问题讨论】:
标签: .htaccess mod-rewrite redirect mod-alias