我的問題是我的本地服務器上的我的.htaccess
文件沒有被讀取。 VirtualHost
文件中的設置似乎總是優先。如何獲得使用Apache VirtualHost的.htaccess文件
我曾嘗試以下:
- 已啓用
mod_rewrite
- 改變了
AllowOverride
到All
但這會導致一個HTTP Error 500 Internal server error
。我用各種選項嘗試過,但總是會導致500錯誤。
我使用它看起來像下面的Ubuntu的一個虛擬主機文件:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /web/website
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /web/website>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
在我.htaccess
文件/web/website
下,我有以下規則(這不被讀取):
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit
RewriteRule ^(.*)$ ogtags.php?$1 [L,QSA]
ErrorDocument 404 /404
ErrorDocument 401 /401
我嘗試過的一件事情是將這些規則直接附加到VirtualHost文件中,但我希望我的.htaccess
文件能夠正常工作!這是一個很大的問題嗎? :(
編輯:。。?所以我看着我的Apache error.log
,它說Invalid command 'Action', perhaps misspelled or defined by a module not included in the server configuration
指我.htaccess
文件似乎沒有成爲一個所謂的執行模塊,我可以讓任何想法
編輯2:我發現我的httpd.conf
文件是空白如果這件事情,因爲我使用VirtualHost
文件
我試過註釋掉這些規則,但看起來並不像他們造成的問題。還有其他建議嗎?我認爲你是對的,但它必須是這些規則中的一個是錯誤的。我甚至嘗試評論所有的規則,並再次沒有效果!所以我不知道還有什麼可以嘗試的! –
嗯,但這些規則在現場服務器上正常工作,包括404s。所以在我的本地apache安裝程序中一定有其他的東西是錯誤的。 –
''httpd.conf''用於添加用戶配置,它包含在''apache2.conf''文件中。它默認爲空白。 – cyberhicham