首頁>Program>source

我成功地將wordpress網站大規模遷移到Drupal.不幸的是,在wordpress中,內容URL類似於www.example.org/?p=123.我的域仍然相同,但是我想通過 htaccess进行重定向 因為Drupal不允许將URL設置為www.example.org/?p=123.換句话說,內容没有与wordpress中相同的URL.例如,新的Drupal URL將類似於 www.example.org/content/MyNewPage

我在.htaccess檔案中尝試了此操作,但它不起作用

Redirect 301 /\?p=375 http://www.example.org/content/MyNewPage

所以我尝試了以下方法,但是它也不起作用。

Redirect 301 /\?p\=375 http://www.example.org/content/MyNewPage

仅作為測試,我尝試了以下方法,並且有效。

Redirect 301 http://www.example.org http://www.google.com

我確保我的重定向規則在.htaccess中列表的頂部,因此將首先對其进行評估.我该如何解決?

最新回復
  • 5月前
    1 #

    "重定向"和" RedirectMatch"均不允许您為重定向源指定查詢字元串。 [来源]

    您必须使用mod-rewrite基於查詢字元串进行重定向:

    RewriteCond %{QUERY_STRING}  ^p=375$
    RewriteRule (.*)  http://www.example.org/content/MyNewPage?  [R=301,L]
    

  • 5月前
    2 #

    您可以考虑在htaccess中使用ModRewrite

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{QUERY_STRING}     ^p=345$    [NC]
    RewriteRule index.php content/MyNewPage [NC,L,R=301]
    </IfModule>
    

    您還可能希望將旧頁面ID傳遞给串聯的新URL(或通過QS?):

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{QUERY_STRING}     ^p=(.*)$    [NC]
    RewriteRule index.php content/MyNewPage-%1 [NC,L,R=301]
    </IfModule>
    

  • 是否有与Java的BigDecimal等效的C ++?
  • .net:如何在VBNET中為以程式設計方式建立的物件建立事件處理程式?