重写、重定向并避免重复内容
Rewrite, Redirect, and avoid duplicate content
我正在尝试使用 .htaccess
重定向单个页面。实际文件是 /abc.php
,我希望它显示为 /abc
。所以这些是我的伪规则:
- 如果用户点击 /abc.php,将 url 重写为 /abc
- 如果用户点击 /abc,服务 /abc.php
出于 SEO 目的,只能使用 /abc
和 /abc.php
之一。
我天真的做法是这样的:
Redirect 301 /abc.php /abc
RewriteRule ^abcs$ /abc.php [NC,L]
这会导致无限循环重定向。我该如何正确执行此操作?
您可以在 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)/?$ .php [L,NC]
我正在尝试使用 .htaccess
重定向单个页面。实际文件是 /abc.php
,我希望它显示为 /abc
。所以这些是我的伪规则:
- 如果用户点击 /abc.php,将 url 重写为 /abc
- 如果用户点击 /abc,服务 /abc.php
出于 SEO 目的,只能使用 /abc
和 /abc.php
之一。
我天真的做法是这样的:
Redirect 301 /abc.php /abc
RewriteRule ^abcs$ /abc.php [NC,L]
这会导致无限循环重定向。我该如何正确执行此操作?
您可以在 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)/?$ .php [L,NC]