簡體   English   中英

如何在 Nginx 中使用 .htaccess 文件?

[英]How can I use an .htaccess file in Nginx?

我目前正在將我的網站從 Apache 遷移到nginx ,但我的.htaccess文件無法正常工作。 我的網站位於/usr/share/nginx/html/mywebsite文件夾中。 如何在我的nginx服務器中使用.htaccess

這是我的.htaccess文件:

RewriteEngine on
RewriteRule video/watch/([a-zA-Z0-9_@$*-]+)/?$ "videos-single.php?id=$1" [NC]

Nginx 不支持.htaccess (請參閱此處“你不能這樣做。你不應該這樣做。如果你需要 .htaccess,你可能做錯了。” )。

你有兩個選擇(據我所知):

披露:我是nginx 的 htaccess的作者,它現在是開源軟件。

在過去的幾年里,我創建了一個在 nginx 中實現 htaccess 行為的插件,尤其是像RewriteRuleAllowDeny之類的東西,這對於網絡安全至關重要。 該插件在我自己的生產環境中使用沒有問題。

我完全分享了 nginx 的效率和速度,以及為什么他們沒有實現 htaccess。 但是,請考慮一下。 如果您使用的是 nginx 和 htaccess,就不會變得更糟。 您仍然保持 nginx 的出色性能,而且您可以在一台網絡服務器上輕松驅動舊設備。

這在 nginx 中不受官方支持。 如果您需要這種功能,您將需要使用 Apache 或其他支持它的 http 服務器。

也就是說, 官方的 nginx 推理是有缺陷的,因為它將用戶想要做的事情與它的完成方式混為一談。 例如,nginx 可以很容易地每隔 10 秒/分鍾左右檢查一次目錄,或者它可以使用 inotify 和類似的機制。 這樣可以避免在每個請求上都檢查它……但是知道這對您沒有幫助。 :)

您可以通過編寫一個等待 nginx 配置文件出現然后將它們復制到/etc/nginx/conf.d/的腳本來繞過這個限制。 但是可能存在一些安全隱患——因為 nginx 中不支持.htaccess ,因此也不支持限制配置文件中允許的配置指令。 YMMV。

使用配置文件是一種選擇,但 .htaccess 文件的一個很酷的地方在於,它為 Web 開發人員提供了一種對服務器設置進行控制的方法,而無需對服務器進行 root 訪問。 nginx 上似乎沒有這樣的東西,這真是太糟糕了。

我了解它在 apache 上的設置方式如何減慢響應時間,但希望有一種 nginx 方法可以在不影響性能的情況下做同樣的事情......至少有一種方法可以在 url 上使用正則表達式進行重寫,如果沒有別的。

是否沒有 nginx 方法可以使用不會減慢響應時間的正則表達式進行批量重定向。


只需使用 myphpmyadmin 編輯您的數據庫。

  1. 打開myphpmyadmin選擇您的數據庫,然后找到您的“ yourprefix_Posts ”表。
  2. 打開它,然后單擊“搜索”選項卡,然后單擊“查找和替換”。
  3. 在下拉列表中選擇“ post_content
  4. 在“查找”字段中,鍵入要更改的 URL:“website.com/oldURL”。
  5. 在“替換”字段中,輸入新 URL:“website.com/newURL”。 (要使用正則表達式,請勾選“正則表達式”框。)

注意:您只需將“替換”字段留空即可對此進行測試。

在進行更改之前始終備份數據庫。 這聽起來可能很可怕,但實際上並非如此。 它超級簡單,可以用來快速更換幾乎所有的東西。

暫無
暫無

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

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