【问题标题】:Help with mod_rewrite and mod_redirect帮助 mod_rewrite 和 mod_redirect
【发布时间】:2010-10-12 17:07:58
【问题描述】:

我的 .htaccess 文件是:

Redirect 301    http://domain.com/news/articles?dtMain_start=150    http://domain.com/news/articles
Redirect 301    http://domain.com/news/articles?dtMain_start=160    http://domain.com/news/articles
Redirect 301    http://domain.com/news/articles?dtMain_start=170    http://domain.com/news/articles
# 
RewriteEngine On
RewriteBase /

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

我还必须合并以下规则

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

我无法让他们一起工作...谁能帮忙...

我尝试在 RewriteCond 之前堆叠重定向,我得到了这个...... http://www.domain.com/news/articles?q=news/articles?dbMain_start=150
http://domain.com/newpage?q=oldpage

好吧,Mod_Alias 和 Mod_Rewrite 互不喜欢。

我可以这样写吗:

RewriteCond %{REQUEST_QUERY_STRING} ^.*&bodgeredirect=true$
RewriteRule ^(.*)&bodgeredirect=true$ index.php?q=$1 [L,QSA]

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    首先:There is not mod_redirect.Redirect是mod_alias的一个指令。

    并且Redirect 指令与 mod_alias 的任何其他指令一样,仅适用于 URL 路径。所以你的Redirect 指令不会按预期工作。改用 mod_rewrite 等效项:

    RewriteCond %{HTTP_HOST} =example.com
    RewriteRule (.*) http://www.example.com/$1 [R=301,L]
    
    RewriteCond %{QUERY_STRING} ^dtMain_start=(150|160|170)$
    RewriteRule ^news/articles$ /news/articles? [L,R=301]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    

    一般来说,如果模式相互一致,混合 mod_alias 和 mod_rewrite 并不是一个好主意。

    【讨论】:

    • 谢谢。我对重定向来源的误解很糟糕。我从 SEO 机构获得了 500 个左右的上述格式的重定向。我意识到我的问题是有多余的空格和非法字符,而不是 URL 编码。我可以在 RewriteConds 之前转储所有重定向吗?
    • @Simon:既然提到的Redirect 指令无论如何都不起作用,是的。
    • @Simon:哦,还有你的 SEO 代理。 ;)
    • @Gumbo 我希望我能!你能看到我原来的问题的更新吗? Mod_Rewrite 搞砸了重定向...如果发生重定向,我可以绕过 Mod_Rewrite 吗?谢谢。
    • @Simon:不,恐怕这是不可能的。这意味着将 mod_alias 与 mod_rewrite 混合使用是个坏主意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多