I'm using a .htaccess file to use clean url's, Everything is working fine on my localhost, but on the production server my .htaccess is ignored..
I have an index.php entry point which requires the files needed.. But as you can see when you browse to
http://mindstretchscan.eu/overzicht , it's trying to load the required page directly. but not the index.php.
http://mindstretchscan.eu?page=overzicht is working! and it's the same page..
This is the top of my .htaccess
<ifModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
RewriteEngine on
Any idea what I might be doing wrong? Pulling my hairs out on this one. Thanks!
Make sure mod_rewrite is enabled
#sudo a2enmod rewrite
#/etc/init.d/apache2 restart
You also need to enable the use of .htaccess files by changing AllowOverride None to AllowOverride FileInfo. For the default website, edit /etc/apache2/sites-available/default
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
And make sure you restart apache again.
Related
Recently I have moved a magento 1.9 but the api/rest url is 404ing.
The site is running on php 7.0 on a virtual host.
I have added
<Directory /var/www/html/magento/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
But this isn't working :/
I have also cheched the .htaccess file for
RewriteRule ^api/rest api.php?type=rest [QSA,L]
The api/rest works fine on my local version but just not on the live server.
Any help with this would be a god send :)
Solution
In the .conf file I needed to remove Options Indexes FollowSymLinks
<Directory /var/www/html/magento>
AllowOverride All
# New directive needed in Apache 2.4.3:
Require all granted
</Directory>
Hope this helps :)
Make sure you use Options -MultiViews instead of Options FollowSymlinks.
I am using this code in my htaccess file, and I am confident that it is right, but it is not working on my new server. You can find my phpinfo file here: http://www.saint57records.com/test.php. I just updated my apache, so I don't know if it is something there. I have tried finding other information but I can't find any.
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/artists/index.php.*
RewriteRule ^artists/(.+)$ artists/index.php?artist=$1 [L]
Check httpd.conf or apache2.conf inside , AllowOverride must be set to All
If you are using Ubuntu check this in /etc/apache2/apache2.conf
<Directory /your/directory>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
I'm trying to rewrite from this url :
my domain/myapp/index.php?lang=es
to:
my domain/myapp/es/
with the following commands on the .htaccess file on the root:
RewriteEngine On
RewriteRule ^myapp/([a-zA-Z0-9_-]+)$ index.php?lang=$1
RewriteRule ^myapp/([a-zA-Z0-9_-]+)/$ index.php?lang=$1
but i didn't succeed
Your code has to work fine.
If you are using Apache server, make sure it is configured right:
Make sure this string is uncommented in httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so
Make sure that there is:
AllowOverride All
in the Directory section instead of:
AllowOverride None
Section should look like:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
llow from all
</Directory>
With correctly configured server your .htaccess file works fine on my machine.
I am using Vagrant to build up a little Wordpress development VM. When I select permalinks (postname) then the page from an article doesn't load. However, when I select the standard link (i.e page id) all is working good.
I've used the service PuPHPet to build the VM.
My settings can be found here
I am using Wordpress 3.9.1 and Apache2
I've enabled mod_rewrite be executing:
a2enmod rewrite
And my .htaccess file from Wordpress is as follows:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /svisa/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /svisa/index.php [L]
</IfModule>
# END WordPress
it has the following permissions and ownership:
-rw-rw-rw- 1 vagrant www-data 248 May 30 14:52 .htaccess
My virtualhost file for the site (/var/www/svisa/) can be found here.
from my host computer, I browse to the site via adress: http://wpdev-vm/svisa/
where wpdev-vm is the name of the vm.
Does anybody know what I am missing to make the permalinks work?
I solved the problem myself.
In the default apache configuration, under /etc/apache2/sites-enabled, where mine is called 15-default.conf
This was declared under the document root:
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
I had to change AllowOverride None to AllowOverride All. Thus you'll get the following:
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
After that, the permalinks started working.
The (correct) answer above says that you need to change AllowOverride None to AllowOverride All in your xxx-default.conf file found in the /etc/apache2/sites-enabled directory.
However, in my vagrant box (precise64) none of the allowOverride or <Directory /var/www/>... code was present to begin with in the default.conf file.
I ended up having to add all of it between the VirtualHost tags, like below:
<VirtualHost *:80>
# Other stuff
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
And then having to restart apache, like below, for it to work.
sudo service apache2 restart
My problem is in my wordpress site only default permalinks is working.. When I change permalinks all pages become not found.. only home page is showing.
When I change permalinks to postname .htaccess content change to
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
And for default it is
# BEGIN WordPress
# END WordPress
Also tried to get the status of mod_rewrite using this
in_array( 'mod_rewrite', apache_get_modules())
It returns 1 and mod_rewrite is enabled on my server and also checked using phpinfo(). mod_rewrite module is loaded.. I have gone through all the documents available in internet.. Please help me to solve this problem.. My hosting server is godaddy..
In case you are on Ubuntu, edit the file /etc/apache2/apache2.conf (here we have an example of /var/www):
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
and change it to:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
also check Apache configuration file for your website /etc/apache2/sites-available/your_site.conf:
<Directory /var/www/your_site_path/>
AllowOverride None
</Directory>
and change it to:
<Directory /var/www/your_site_path/>
AllowOverride All
</Directory>
You need to do sudo a2enmod rewrite to enable module rewrite
then,
sudo service apache2 restart
I hope this helps you!
It could be a broken rewrite_rules field in your database.
I installed "Yoast SEO" into a live site and that broke it completely. I disabled the plugin but it didn't go back to working. Only default permalinks would work.
Like everyone else I tried the usual things - checking .htaccess, making sure that mod_rewrite was working on the server, saving the permalinks settings again, but nothing was working. The homepage would load, and wp-admin pages would load, but everything else was just loading the "Latest Posts" default page.
In the end it turned out to be something wrong with the rewrite_rules field of wp_options in the database.
I had three versions of the site (local, staging and production), and all were from one SVN base, so I knew it was not a file issue. But only the local development version was working.
I replaced the contents of the rewrite_rules field of the broken live site with the working one from my local development site, and it worked.
What's really weird is that deleting the rewrite_rules field and having WordPress rebuild it did not fix the problem. Only replacing with the contents of a previously working version of the site did the trick.
I'm still puzzled by this, and will edit this reply if I find out anything further about the problem.
I had the exact same issue and fixed it by running
sudo a2enmod rewrite
Then restarted apache. Apparently the issue is caused by mod_rewrite potentially not working properly on ubuntu.
I found the solution here
suffered from the same issue. Having site on SSL had to change NOT the 000-default.conf but the respective SSL conf file. Adding
after DocumentRoot /var/www/html
the following
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
and then restarting apache2 saved my site.... nothing else worked. The issue was Wordpress SSL and SEO plugins messing up config files.
I had this issue in Wordpress installed on CentOS7 and the solution was to edit httpd.conf file with this command:
sudo vi /etc/httpd/conf/httpd.conf
And replace
<Directory "/var/www/wordpress">
Options Indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>
with
<Directory "/var/www/wordpress">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
then restart Apache:
sudo systemctl restart httpd.service
Not sure this is too late. i faced the same issue and solved by changing
AllowOverride None
to
AllowOverride All
in /etc/apache2/sites-enabled/000-deafult.conf file. hope this would help.
I faced the same challenge after setting up WordPress on Ubuntu 22 and configuring an SSL certificate for the site.
This is how I was able to resolve it.
Open the apache config file for editing (using nano in this case)
sudo nano /etc/apache2/apache2.conf
Change the following line:
<Directory "/var/www">
Options Indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>
to:
<Directory "/var/www">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Open the default SSL config file for editing
sudo nano /etc/apache2/sites-available/default-ssl.conf
Add the following code:
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Restart Apache
sudo service apache2 restart
You should now be able to change the site permalink structure without seeing the 404 page not found error.