2012-09-28 79 views
1

我期待有所有的WordPress重寫除了工作:重寫指數和一個文件夾與WordPress靜態頁面重寫另

  • 首頁爲靜態html頁面,內容是index.html中在根文件夾
  • /business路由到的根目錄,其中包含靜態HTML頁面business文件夾。

當我將索引設置爲. /index.html [L]時,沒有正常的wordpress重寫工作。但是,如果我設置DirectoryIndex /index.html我無法弄清楚如何獲得重寫爲/business其中包含了需要擔任了在http://mywebsite.com/business網址HTML文件。全部重寫規則:

RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# RewriteRule . /index.php [L] 
RewriteRule . /index.html [L] 

任何幫助表示讚賞,並不僅僅是一個答案越多,說明你提供每條線路部分確實可以幫助自己和他人瞭解如何藉此對自己的未來時間。

UPDATE:規則仍然沒有工作。/wp-admin一直工作。

回答

0

嘗試:需要

RewriteEngine On 
RewriteBase/
RewriteRule ^index\.html$ - [L] 
RewriteRule ^business/ - [L] 
RewriteRule ^index\.php$ - [L] 
RewriteRule ^$ /index.html [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
+0

沒有,沒有工作。 WordPress管理員正在工作(雖然之前也是如此),但沒有其他WordPress相關的。 – Matt

+0

這應該根據您的標準正常工作 - 您在訪問日誌中看到什麼? – doublesharp

-1

兩個問題需要解決:

  1. 作爲特定HTML文件每當有人需要的頭版。
  2. 從靜態目錄旁邊的WordPress提供靜態文件。

爲了解決第一個問題,我將index.html重命名爲front-page.php並將其移動到我當前的主題文件夾中。然後,根據Template Hierarchy,只要有人要求首頁,WordPress就會爲其提供服務(或者更確切地說:將其用作模板)。

是有成本的這種解決方案相比,實際投放靜態文件:每當有人請求您的頭版,WordPress會仍然被加載。如果靜態提供首頁的目標是通過在每個頁面加載時不加載WordPress或PHP來節省服務器資源,則應該查看緩存插件。

第二個問題不應該是一個問題可言,因爲標準的WordPress重寫規則已經允許的靜態文件和目錄。行

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

表示如果請求的URL是實際文件(-f)或目錄(-d),則不會發生到WordPress的重定向。因此,您將不需要任何額外的重寫規則來訪問/ business目錄。

標準的WordPress重寫規則如下解釋:

RewriteEngine On     # Turn on the rewrite engine 
RewriteBase/      # Use the domain root as the base of rewrites 
RewriteRule ^index\.php$ - [L]  # If someone requests the WordPress entry point, stop here 
RewriteCond %{REQUEST_FILENAME} !-f # If the requested URL is not an actual file ... 
RewriteCond %{REQUEST_FILENAME} !-d # ... and if the requested URL is not an actual directory ... 
RewriteRule . /index.php [L]  # ... then rewrite it to the main WordPress entry point 

當的index.php被加載後,該文件將依次負荷WordPress和一切隨之而來。

0

根與你的.htaccess文件替換該代碼

# Switch rewrite engine off in case this was installed under HostPay. 
RewriteEngine Off 

SetEnv DEFAULT_PHP_VERSION 53 

DirectoryIndex index.cgi index.php 

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

,改變從數據庫URL的...

1

嘗試堅持用WordPress默認重寫,並簡單地添加的DirectoryIndex喜歡.html文件在.php文件:

DirectoryIndex index.html index.php 

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

所以會重寫只有當請求的文件或目錄被丟失(與-f和RewriteConds -d標誌!)發生。如果在目錄(例如根目錄)中有一個靜態index.html和index.php,它將首先被提供。

http://httpd.apache.org/docs/2.2/mod/mod_dir.html#directoryindex

+0

+1,並確保'DirectoryIndex'在'#BEGIN WordPress'之前 – soju