Php
無法載入 mod_rewrite Apache 模組
我正在嘗試使用
mod_rewrite
的模組Apache24 server
,但我無法載入它。我知道有很多關於這個主題的問題,我已經解決了所有問題,但似乎沒有任何效果。這些是我到目前為止所遵循的步驟——
- CHANGED
httpd.conf
文件進行了這些更改:未註釋
LoadModule rewrite_module modules/mod_rewrite.so
B. 改為
AllowOverride None
_AllowOverride All
2. 重啟apache伺服器 3. 使用命令提示符命令檢查載入的模組httpd -M
。我可以在那裡看到 mod_rewrite 模組已載入。我附上下面的圖片。但是在執行完所有這些步驟之後,我看不到 mod_rewrite 作為載入的模組
phpinfo
。如上圖所示,沒有載入 mod_rewrite 模組。同樣作為一個瘋狂的黑客,我什至嘗試使用
.htaccess
文件重寫 URL,但這不起作用。.htaccess
儘管我已將該文件放在我的根目錄中,但Apache 似乎忽略了文件。Note: I am running `PHP` as an apache module Using `WAMP` stack Using `localhost` as server
我非常需要這個模組來重寫 URL。你們能建議一些其他方式來載入這個模組嗎?
編輯
我試圖從虛擬主機重寫 URL,因為答案表明模組已載入並且它既不依賴也不依賴
.htaccess
於info.php
. 但是它仍然沒有重定向。我在Virtual host
下面添加設置—<VirtualHost *:80> <Directory "/Apache24/htdocs"> Options FollowSymLinks AllowOverride All DirectoryIndex index.html index.php </Directory> ServerName localhost DocumentRoot "/Apache24/htdocs" ErrorLog "/Apache24/logs/error.log" CustomLog "/Apache24/logs/access.log" combined <directory "/Apache24/htdocs"> <IfModule rewrite_module> Options +FollowSymlinks RewriteEngine On </IfModule> <IfModule rewrite_module> RewriteRule ^working.php fun.html </IfModule> </directory> # Rewrite Rules ##################### RewriteEngine On RewriteRule ^working.php fun.html # end Rewrite Rules ################# </VirtualHost>
working.php
當我嘗試執行時,上面的程式碼不會將其重定向到fun.html
. 它只是說:在此伺服器上找不到請求的 URL /working.php。
- 您不需要 .htaccess 或 AllowOverride 來使 mod_rewrite 工作,不要使用,因為您是伺服器的管理員,因為它只會使您的生活複雜化並給您的伺服器造成不必要的成本。
- 除了載入模組之外,您需要的唯一指令是:
重寫引擎開啟
額外的:
- 考慮使用 Redirect/RedirectMatch 代替(來自 mod_alias)進行簡單的重定向,如果這就是您所需要的。
- 考慮在虛擬主機上下文中定義重定向/重寫以避免未來的噩夢和在不久的將來失去頭髮。