簡體   English   中英

否定單詞的htaccess的特定重寫規則

[英]Specific rewrite rule on htaccess with negation of word

我試圖根據單詞的取反使用正則表達式重寫或重定向URL。

場景如下:

我在example.com/wp-blog安裝了wordpress,但是可視化是通過example.com/blog API實現的。 我需要禁用對/wp-blog的訪問並將其重定向到/blog但是保留對/wp-blog/wp-admin

我在htaccess上嘗試以下條件:

RewriteCond ^wp-blog/((?!wp-admin).)*$ [NC]
RewriteRule ^(.*)$ /blog/$1  [R=301,L]

但是沒有成功。

我也嘗試這樣:

Redirect 301 ^wp-blog/((?!wp-admin).)*$ /blog/$1

還有這個:

RewriteRule ^wp-blog/wp-admin $ /wp-blog/wp-admin $1 [L,NC]
RewriteRule ^wp-blog/wp-login.php $ /wp-blog/wp-login.php $1 [L,NC]
RewriteRule ^wp-blog/(?!.*wp-admin)$ /blog/$1 [R=301,L,NC]

我嘗試的所有組合都沒有成功。 那么,如何將/wp-blog重定向/重寫到/blog但可以訪問/wp-blog/wp-admin

非常感謝。

您可以使用request_uri來測試以下路徑是否為wp-admin,然后編寫一條規則以將所有內容重寫為/blog

RewriteCond %{REQUEST_URI} ^/?wp-blog(?!/wp-admin)
RewriteRule ^/?wp-blog(/.*)? blog$1 [R=301,L]

無需使用.htaccess進行任何操作,您可以直接使用WordPress完成所有操作。

它可以分兩步完成

第1步:在您的根目錄下,使用以下內容創建index.php

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog/wp-blog-header.php' ); /** here wp-blog is place as your folder name */

步驟2:現在將數據庫中的“ staging.domain.com”更改為“ staging.domain.com/wp-blog”(對於此下載sql>打開並編輯替換>上傳新sql)。

現在,您的完整站點都在staging.domain.com URL上運行,但是文件是從“ wp-blog”文件夾中調用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM