【发布时间】:2016-04-15 06:59:24
【问题描述】:
我们正在使用一个名为 ExpressionEngine 的 CMS。
我们有一个名为 Contact 的模板/文件夹——它有索引文件。我们只有联系人的索引页面,因为我们没有联系人所需的更深层次的 URL。
但是,如果您在正常联系页面 URL 的末尾添加任何内容,它会在联系页面上加载相同的内容,但不会重定向并保留随机 URL。
例子:
这是正确的 URL 并显示索引内容:
http://www.example.com/contact/
这些是不正确的 URL(仍然有效 - 一切正常)并显示索引内容:
http://www.example.com/contact/kjhfd/
http://www.example.com/contact/kjhfd/kljhdf/
http://www.example.com/contact/f/
我们希望停止这种情况并将 301 重定向到 http://www.example.com/contact/。
我已经尝试使用 htaccess 进行 RedirectMatch - 我已经尝试在 htaccess 中进行 301 重定向,并且我已经尝试了一个时髦的 PHP 如果重定向 - 到目前为止,这些都没有工作
我们没有 PHP 重定向。我们有很多 htaccess 重定向,请看下面:
RewriteEngine On
#Trailing backslash
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* [QSA,L]
【问题讨论】:
-
我已经尝试使用 htaccess 进行 RedirectMatch - 我已经在 htaccess 中尝试了 301 重定向,并且我已经尝试了一个时髦的 php if 重定向 - 到目前为止,这些都没有奏效
-
很高兴知道。您应该更新问题,说明您尝试过的方法以及失败的原因,以便我们帮助您解决问题,而不是简单地为您的问题编写可能的解决方案。
标签: .htaccess url redirect expressionengine