Apache htaccess 301规则不存在';t重定向

Apache htaccess 301规则不存在';t重定向,apache,.htaccess,Apache,.htaccess,我似乎不知道如何301重定向旧URLhttps://www.mydomain.com/old_url/至https://www.mydomain.com/new_url/ 我目前的htaccess中有以下内容(请注意与此问题相关的第二条规则): 我也在使用Django,如果这有区别的话。非常感谢您的帮助。以下几点应该很好: Options +FollowSymLinks RewriteEngine On RewriteRule ^old_url$ /new_url [L,R=301] Rewri

我似乎不知道如何301重定向旧URL
https://www.mydomain.com/old_url/
https://www.mydomain.com/new_url/

我目前的htaccess中有以下内容(请注意与此问题相关的第二条规则):


我也在使用Django,如果这有区别的话。非常感谢您的帮助。

以下几点应该很好:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^old_url$ /new_url [L,R=301]
RewriteRule ^old_url/(.*) /new_url/$1 [L,R=301]
与此相反:

RewriteCond %{THE_REQUEST} ^GET\ /old_url/
RewriteRule ^/old_url$ https://www.mydomain.com/new_url [R=301,nc]
你可以试试这个:

RewriteCond %{REQUEST_URI} old_url/(.*)
RewriteRule .* https://www.mydomain.com/new_url/%1 [R=301,QSA,NC]
将重定向:

https://www.mydomain.com/old_url/whatever

致:

https://www.mydomain.com/new_url/whatever

已更新

如果不复制URI的其余部分(“任何内容”),请使用以下命令:

RewriteCond %{REQUEST_URI} old_url.*
RewriteRule .* https://www.mydomain.com/new_url [R=301,QSA,NC]

那也没用。当我访问旧的URL时,仍然得到404。@AbidA您是否将
.htaccess
放在Web服务器的根目录中?尝试使用“我的更新”(您可能没有将这些选项设置为默认设置)。文件位于正确的位置,因为其他规则可以正常工作。我尝试了你的更新和相同的404。@AbidA只是为了确保它正在加载
.htaccess
文件,试着在那里键入一些伪代码(例如
riwrotengine Of
,或者一个简单的
akljdlad
),看看你是否会得到你应该得到的
500
。这似乎是你所说的。但是,我不关心
无论什么
部分,我使用了
RewriteCond%{REQUEST\u URI}old\u url/RewriteRule^/$https://www.mydomain.com/new_url/ [R=301,QSA,NC]
好吧,我只是为了以防万一才添加的,但是当没有任何东西时它不会影响规则。谢谢更新。我想做的一件事是将匹配限制为
old\u url
old\u url/
-这可能吗?现在,我可以在
old_url
之后键入任何内容,但我不希望以后与其他url发生潜在冲突。是的,但请注意,任何尾随空格都会导致条件失败。只需更改条件,如下所示:
old\u url/?$
RewriteCond %{REQUEST_URI} old_url.*
RewriteRule .* https://www.mydomain.com/new_url [R=301,QSA,NC]