[英]Modifying wordpress htaccess to forward certain urls to subdirectory
無論出於何種原因或我無法確定的其他原因,我的公司都決定將wordpress用於其網站之一。 他們要求我在同一個域上構建一個聯屬網絡營銷應用程序。 除以下兩難之外,一切工作都很好:
wordpress安裝在根目錄中。 所有頁面,視頻,銷售等均來自Wordpress頁面。
會員應用程序位於子目錄/ aff /中,而會員的頁面位於mydomain.com/aff/index.php?aff=affiliateusername中
會員(及其潛在客戶)應該只需輸入www.mydomain.com/affiliateusername即可加載其頁面,但我仍在努力了解如何翻譯wordpress htaccess規則來做到這一點。
顯然,進行此工作的最佳順序是讓wordpress首先確定是否有任何與網址詞FIRST相匹配的博客/帖子/頁面,如果找不到,則將所有其他內容重定向到www.mydomain.com/ AFF /的index.php?AFF =什么
這就是我最終想出的方法,該方法適用於索引頁面和會員頁面,但是沒有正確加載除索引之外的任何wordpress頁面。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(images|wp-admin|wp-content|wp-includes|go|compliance\.html)($|/) - [L]
#RewriteRule ^([^/].*)$ /aff/index.php?aff=$1 [R,L]
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
您可以告訴我,我試圖從重寫中排除某些目錄,但是沒有成功。 我已經通過Googling閱讀了其他建議,將重定向規則放在wordpress塊的前面,但是問題很少。 當我將此行放在#BEGIN WordPress行的前面時,我得到了一個無限循環的重定向循環,該循環不斷轉到/aff/index.php?aff=aff/index.php?...等(這是我使用的同一行對於不同的,無wordpress的域中的同一會員應用程序)
#RewriteRule ^([^/].*)$ http://www.mydomain.com/aff/index.php?aff=$1 [L]
我感覺好像缺少了非常明顯的東西。 我應該只是設置wordpress將所有404重定向到/aff/index.php?aff=originalrequest嗎? 我將如何去做?
提前致謝。
您使用了RewriteRule
而不是RewriteCond
。 在WordPress規則之間添加它們肯定也會破壞您的博客。 將您的.htaccess
代碼更改為:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)$ /aff/index.php?aff=$1 [R=301,QSA,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
如果您希望URL保留為mydomain.com/affiliate
刪除[R]
並僅使用[QSA,L]
。
RewriteCond %{REQUEST_URI} !^/blog\\b
從重定向中排除所有指向/blog
或其子目錄/blog/sub/dirs
URL。
.php
頁面(即使頁面很少),則可以通過將規則更改為來更輕松地處理排除
RewriteRule ^([^/.]+)$ /aff/index.php?aff=$1 [R=301,QSA,L]
假設.
並且/
永遠不能以會員名稱出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.