2016-05-31 117 views
1

我通常不會在這裏發帖,並嘗試自己弄清楚事情,但我在我的智慧結束。WordPress .htaccess重定向

我試圖執行WordPress的重定向,以便請求:

/property/123-my-unique-uri-here 

...被轉發到一個叫/property-details.php文件,但仍然URL在地址欄中相同。

這是我已經試過:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^property/(.*)$ /wp-content/themes/Divi/property-details.php?uri=$1 [QSA,L] 
</IfModule> 

然而,當我訪問我剛剛轉發到主頁的URL /property/123-my-unique-uri-here

如果有人有任何想法,我會永遠感激!

+1

必須有其他規則,比如標準WP重寫index.php,也許更多。訂單也是相關的。 –

+0

使用WordPress的重寫規則功能https://codex.wordpress.org/Rewrite_API/add_rewrite_rule – TheFallen

+0

對於ref,如果你沒有得到你想要的答案,還有一個專門的wordpress.stackexchange.com網站可能是能夠幫助你。 – Simba

回答

0

試試這個:

RewriteRule ^property/123-my-unique-uri-here$ /property-details.php?&%{QUERY_STRING} 

另一種選擇是隻使用301:

RedirectMatch 301 /property/123-my-unique-uri-here(.*) /property-details.php$1 
0

的解決方案是創建一個的.htaccess重寫規則,增加了尾部斜槓這些URL。示例 - 重定向沒有尾隨斜線以斜線到URL的所有URL:

RewriteEngine On 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteCond %{REQUEST_URI} !example.php 
     RewriteCond %{REQUEST_URI} !(.*)/$ 
     RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301] 

附加斜線的.htaccess重寫規則的說明:

第一行告訴Apache這個是Apache的mod_rewrite模塊的重寫引擎的代碼。第二行將當前目錄設置爲頁面根目錄。但最有趣的部分是:

RewriteCond %{REQUEST_FILENAME} !-f 

可以確保現有的文件不會得到一個斜槓增加。你不應該對目錄做同樣的事情,因爲這會排除現有目錄的重寫行爲。該行

RewriteCond %{REQUEST_URI} !example.php 

排除了一個不應該被重寫的示例url。這只是一個例子。如果您沒有不應重寫的文件或網址,請移除此行。條件:

RewriteCond %{REQUEST_URI} !(.*)/$ 

當url不包含結尾斜槓時,會終止觸發。現在我們需要重定向URL而不用斜線:

RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]