0

我正在尝试使用 /Drug-Charges/ 的链接将所有内容重定向到简单的 /

我一直在尝试 301 重定向和重写规则,但都没有运气。

RewriteCond %{REQUEST_URI} ^/Drug-Charges/(.*) [NC]
RewriteRule ^/Drug-Charges http://www.domain.com/$1 [R=301,L]

我在这里做错了什么?我已经启用了重写引擎和一切。

这是整个顶部:

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.aspx$ $1.html [R=permanent]
RewriteRule ^Landing-Pages/(.*) County-Resources/$1 [R=permanent]
#RewriteRule ^Practice-Areas/Sex-Crimes/(.*) /$1 [R=permanent]

rewriteRule ^index\.(php|html|htm|asp) http://www.domain.com/ [R=permanent,L] 


RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

RewriteRule ^Drug-Charges/(.*) /%1 [R,L]
4

2 回答 2

0

您的规则中有两个问题

  • (.*)in aRewriteCond被访问为%1,而不是$1
  • 在 .htaccess 上下文中,从请求 URL 路径中删除前导斜杠

/Drug-Charges要从请求 URL 中删除,您只需要

RewriteRule ^Drug-Charges/(.*)$ /$1 [R,L]

永远不要在启用的情况下进行测试,有关详细信息301,请参阅此答案提示调试 .htaccess 重写规则

于 2013-03-18T21:12:40.627 回答
0

最好在不使用REQUEST_URI引用的情况下进行这种重定向。

RewriteRule ^Drug-Charges/?(.*)? $1[L,NC,R=301]

该规则主要检查请求是否以 开头Drug-Charges,以及其后的任何可选内容,并相应地重定向。

请注意,您应该REQUEST_URI完全删除该引用。

于 2013-03-18T21:19:14.670 回答