[英]Wordpress site search functionality is not working because of code in .htaccess file
[英]Wordpress htaccess code functionality
我在必須進行一些修改的網站的.htaccess文件中找到此代碼:
#BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /ambienteTrabajo/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ambienteTrabajo/index.php [L]
</IfModule>
#END WordPress
我不是apache專家,所以不勝感激您的幫助(通用或特定術語),該代碼有什么作用?
以#
開頭的第一行和最后一行是注釋,因此您知道這些規則如何以.htaccess
文件結尾。 WordPress核心代碼出於各種原因需要更改規則時,會使用這些注釋來查找相關代碼。 他們自己什么也不做,沒有其他目的。 第一個字符是#
任何行都是注釋。
<IfModule mod_rewrite.c>
和</IfModule>
行可以成對使用,如果服務器未安裝mod_rewrite.c模塊,則可以防止錯誤。 如果缺少該模塊,則中間的行將被忽略。
RewriteEngine On
此行告訴服務器將以下所有以Rewrite *開頭的行作為一個邏輯組處理到下一個RewriteEngine行。
RewriteBase /ambienteTrabajo/
這行代碼定義了所有相關參考的基礎。 在這種情況下,/ ambienteTrabajo /
RewriteRule ^index\.php$ - [L]
此規則可防止對index.php的任何引用作為永久鏈接進一步處理,因為它不是一個。 一段時間后,這會更有意義。 由於這是第一個重寫規則,沒有上面的條件,因此始終會處理該規則。 因此,如果文本index.php與基本定義之后的請求部分匹配,請沿原樣傳遞請求,並且不再處理其他規則。
RewriteCond %{REQUEST_FILENAME} !-f
刻下scribeRewriteCond意味着條件必須為真,以便處理下一個RewriteRule。 %{REQUEST_FILENAME}是服務器設置為包含請求URL的變量。 !-f表示如果第一個參數未解析為有效文件,則條件為true。
RewriteCond %{REQUEST_FILENAME} !-d
這類似於第一個條件,除了現在我們要檢查有效目錄(-d標志)而不是文件。
RewriteRule . /ambienteTrabajo/index.php [L]
本質上僅在請求是某種永久鏈接的情況下才處理此規則。 任何其他有效的文件系統路徑都將直接傳遞而無需更改。 同樣,有兩個參數和一個標志。 [L]標志再次表示在此之后不處理任何其他規則。 此后通常沒有其他規則,但是為了安全起見,將其放在此處。 點。 表示匹配任何一個字符。 /index.php表示將整個原始請求替換為/index.php。 如果您的WordPress安裝位於公共html根目錄之上,您還將在此處看到實際的文件夾路徑。 該規則基本上說將任何永久鏈接請求發送到index.php,以供WordPress進行進一步處理。 WordPress從另一個變量獲取原始請求,因此在這里重寫它並不重要,WordPress仍將知道原始請求是什么。
我已經知道此代碼的含義。 首先,我將這段代碼放在一個子域中,用於測試目的,此代碼使網站的其他鏈接重定向到“ / ambienteTrabajo /”,而不重定向到根文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.