[英]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,你可能做錯了。” )。
你有兩個選擇(據我所知):
.htaccess
導入到nginx.conf
(也許htaccess 到 nginx 轉換器可以幫助您)披露:我是nginx 的 htaccess的作者,它現在是開源軟件。
在過去的幾年里,我創建了一個在 nginx 中實現 htaccess 行為的插件,尤其是像RewriteRule
、 Allow
和Deny
之類的東西,這對於網絡安全至關重要。 該插件在我自己的生產環境中使用沒有問題。
我完全分享了 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 編輯您的數據庫。
注意:您只需將“替換”字段留空即可對此進行測試。
在進行更改之前始終備份數據庫。 這聽起來可能很可怕,但實際上並非如此。 它超級簡單,可以用來快速更換幾乎所有的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.