2

我需要一个 .htaccess 重写规则来重定向这样的链接:

  • www.mydomain.com/viewpressrelease.php
  • www.mydomain.com/viewpressrelease.php?id=17(或.php 后面的任何文本)
  • www.mydomain.com/employment.php

将 .php 替换为 .html 的同名链接,如下所示:

  • www.mydomain.com/viewpressrelease.html
  • www.mydomain.com/employment.html

但不对 index.php 或以下内容采取行动:

  • www.mydomain.com/administrator/index.php

我有一个很接近但不处理 ?id=17 部分的示例,并且正在将 index.php 转换为 index.html。

RewriteCond %{THE_REQUEST} ^[A-Z]+\s([^\s]+)\.php\s 
RewriteRule .* %1.html [R=301,L] 
RewriteRule ^(.*)\.html$ $1.php

我需要什么才能按需要完成这项工作?

4

1 回答 1

1

您需要添加一个要排除的条件index.php,然后\s从检查中删除最后一个%{THE_REQUEST}

RewriteCond %{REQUEST_URI} !index\.php
RewriteCond %{THE_REQUEST} ^[A-Z]+\s([^\s]+)\.php
RewriteRule .* %1.html [R=301,L] 
RewriteRule ^(.*)\.html$ $1.php
于 2012-10-20T06:15:30.233 回答