2015-09-21 85 views
0

這種類型的問題已經在SO之前提出過,但所提供的解決方案對我不起作用。 How can I remove this directory/folder from url with htaccess rewrite?使用.htaccess從URL中刪除目錄文件夾

我有一個多站點WordPress的安裝,我已經繼承,它有一個單一的.htaccess文件在網站的根目錄。

我需要做這樣的http:thewebsite.com/jol/blog/author/myles/所有URL的全局重定向去http:thewebsite.com/jol/author/myles/

到目前爲止,我已經在.htaccess文件中嘗試這種代碼:

# BEGIN WordPress 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

# Remove subdirectory of "blog" from URLs 
RewriteCond %{THE_REQUEST} \ /blog/ 
RewriteRule ^blog/(.*)$ /$1 [L,R=301] 

與此代碼:

# BEGIN WordPress 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{THE_REQUEST} \ /blog/ 
RewriteRule ^blog/(.*)$ /$1 [L,R=301] 

;最後,此代碼:

# BEGIN WordPress 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteRule ^blog/(.*)$ /$1 [R=301,NC,L] 

絕對沒有一個可以工作。迄今爲止唯一成功的是單獨針對每個URL並執行重定向,這是...疼痛。

任何幫助將非常感激。

+0

模式',因爲你的網址'約爾/' – hjpotter92

+0

開始^博客/'會失敗謝謝!當我現在看這件事情​​時,這很有道理。那麼我將如何定位'博客'的下一個子目錄呢? –

+1

試試這個'RewriteRule ^(。*(?= blog /))blog /(.*)$ $ 1 $ 2 [NC,L,R = 301]' – hjpotter92

回答

1

您嘗試的規則不起作用,因爲您的模式中有:^blog/。由於您要重寫的網址格式爲jol/blog/...,因此應更新規則。

假設jol可能有所不同;使用規則:

RewriteRule ^(.+/(?=blog/))blog/(.*)$ $1$2 [R=301,L,NC] 

如果jol將永遠是在規則,只是使用:

RewriteRule ^jol/blog/(.*)$ jol/$1 [R=301,L,NC] 
相關問題