Phabricator安装报错:重写规则配置不正确问题求助
Hey there, that error is a dead giveaway that Apache's rewrite rules aren't properly passing requests to Phabricator's front controller. Let's walk through the key fixes step by step:
1. Enable Apache's mod_rewrite module
First, make sure the rewrite module is turned on—this is non-negotiable for Phabricator's URL handling. Run these commands:
sudo a2enmod rewrite sudo systemctl restart apache2 # For systemd-based systems # OR sudo service apache2 restart # For older init systems
2. Update your VirtualHost configuration to allow overrides
Your existing VirtualHost config is missing a critical directory block that lets Apache use the .htaccess rules from Phabricator. Add this inside your <VirtualHost *> block (replace the path with your actual webroot location):
DocumentRoot "/path/to/your/phabricator/webroot" <Directory "/path/to/your/phabricator/webroot"> AllowOverride All Require all granted </Directory>
The AllowOverride All line ensures Apache reads the .htaccess file in the webroot, which handles the path parameter mapping.
3. Verify the Phabricator .htaccess file exists
Head to your Phabricator webroot directory and check if there's a .htaccess file with these rules:
RewriteEngine On RewriteRule ^(.*)$ index.php?__path__=$1 [B,L,QSA]
If it's missing, you can either copy it from the Phabricator installation package or create it manually with those lines.
4. Test your Apache config and restart
Before restarting, validate your config to catch any syntax errors:
sudo apache2ctl configtest
If it returns "Syntax OK", restart Apache again to apply all changes.
5. Adjust your access URL
Instead of visiting www.cleverbit.com.br/phabricator/webroot/, try accessing www.cleverbit.com.br directly. Since your VirtualHost's DocumentRoot points to the webroot, adding the full path in the URL will confuse the rewrite rules.
Give these steps a shot—this should resolve the path parameter error by ensuring Apache properly routes all requests through Phabricator's index.php.
内容的提问来源于stack exchange,提问作者andreybleme

