重写,重定向,并避免重复的内容

时间:2015-01-26 18:41:34

标签: .htaccess mod-rewrite apache2 apache2.2

我尝试使用.htaccess重定向单个页面。实际文件为/abc.php,我希望它显示为/abc。所以这些是我的伪规则:

  • 如果用户点击/abc.php,请将网址重写为/ abc
  • 如果用户点击/ abc,则发送/abc.php

对于搜索引擎优化目的,只有/abc/abc.php中的一个可用。

我天真的做法是:

Redirect 301 /abc.php /abc
RewriteRule ^abcs$ /abc.php [NC,L]

这会导致无限循环重定向。我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+(abc)\.php[\s?] [NC]
RewriteRule ^ %1? [R=302,L]

# internal forward from pretty URL to actual one
RewriteRule ^(abc)/?$ $1.php [L,NC]