【问题标题】:RewriteRule conditions for 301 redirect301 重定向的 RewriteRule 条件
【发布时间】:2014-10-07 15:15:54
【问题描述】:

我必须重命名 URL 的一部分,这会影响到几十个网页:

http://www.example.com/old/web-pagehttp://www.example.com/new/web-page

到目前为止我有:

RewriteRule old/(.*) http://www.example.com/new/$1 [R=301,L]

但我读过 RewriteRule can clash,我在 .htaccess 中使用它:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

所以,我有两个问题:RewriteRule 是否正确;我会经历某种冲突吗?

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    将您的301 规则放在RewriteEngine On 行的下方:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteRule old(/.*)?$ /new$1 [R=301,L,NC]
    
    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
    </IfModule>
    

    【讨论】:

    • 感谢您的及时回复。正如您所想象的,我还有其他事情要做(更改一个的实际 URL 结构),但如果一切顺利,我会投票并接受您的回答。
    • 好的,如果您在使用这些规则时遇到任何问题,请务必告诉我。
    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多