簡體   English   中英

使用參數更改 Wordpress 頁面 URL

[英]Change Wordpress page URL with parameter

我在我的 Wordpress 網站上創建了一個動態內容頁面。 內容取自 MySQL 數據庫,將根據 GET URL 參數顯示。 我通過向 Wordpress 頁面插入 PHP 代碼創建了這個動態頁面(我使用 Advanced Ads 插件插入代碼)

我想更改沒有 URL 參數的 URL。

例子:

DomainName.com/hotel-details/?hotelcode=First-Hotel

我想把它改成

DomainName.com/hotel-details/First-Hotel

或者

DomainName.com/sometext/First-Hotel

我試圖將 mod_rewrite 添加到根文件夾中的 .htaccess 文件中。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^hotel-details/([A-Za-z0-9-]+)$ hotel-details/?hotelcode=$1 [NC,L]
</IfModule>

但它似乎不起作用,當我訪問DomainName.com/hotel-details/First-Hotel 時,我收到錯誤 404 Page Not Found。

非常感謝任何幫助!

您正在以錯誤的方式使用規則。 而是嘗試:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?hotel-details/(\w+)/$ /hotel-details/?hotelcode=$1 [END]

如果您使用上述規則收到內部服務器錯誤(http 狀態 500),那么您可能運行的是非常舊版本的 apache http 服務器。 在這種情況下,您將在 http 服務器錯誤日志文件中看到不支持的[END]標志的明確提示。 您可以嘗試升級或使用舊的[L]標志,在這種情況下它可能會起作用,盡管這有點取決於您的設置。

此規則在 http 服務器主機配置或動態配置文件(“.htaccess”文件)中同樣適用。 顯然重寫模塊需要在http服務器中加載並在http主機中啟用。 如果您使用動態配置文件,您需要注意在主機配置中完全啟用它的解釋,並且它位於主機的DOCUMENT_ROOT文件夾中。

還有一個一般性的評論:你應該總是喜歡將這樣的規則放在 http 服務器主機配置中,而不是使用動態配置文件(“.htaccess”)。 這些動態配置文件增加了復雜性,通常是意外行為的原因,難以調試,而且它們確實會降低 http 服務器的速度。 它們僅在您無法訪問真正的 http 服務器主機配置(閱讀:非常便宜的服務提供商)或堅持編寫自己的規則的應用程序(這是一個明顯的安全噩夢)的情況下作為最后一個選項提供。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM