.htaccess ErrorDocument 404 not redirecting - php

I have tried to create a custom page for the 404 errors to go to, these are the settings in my apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/html>
options Index FollowSymLinks
AllowOverride All
Require all granted
</Directory>
and this is my code in the .htaccess file
RewriteEngine On # Turn on the rewriting engine
ErrorDocument 404 /404.php
RewriteRule ^ls/(\w+)/?$ Pages/misc/profile.php?ss=$1 [NC]
however when I test a page that doesn't exist and it 404s, it doesn't redirect at all to 404.php. For instance if I try a random page like asdf.html, it doesn't show the custom 404 page or even say can't find 404.php, it says it can't find asdf.html which means the redirect never takes place. Can anyone shed some light on why it doesn't redirect?
Thank - you!
p.s. my website resides in /var/www/html for reference

Related

phpmyadmin giving 500 error after update the apache2.conf

I am using Linux mint. I am working in a Wordpress, It was not possible navigate a page. I got a answer from a source to change the apache2.conf file like bellow
<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>
But for me the phpmyadmin is not working after this change. For that problem i go for this
Adding
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
in the phpmyadmin.conf file. But still it is working. Is there are anything i have left.
Thanks in advance.

enable htaccess apcahe on ubuntu

I have an apache server on ubuntu where i have a virtual host that points to my site. Problem is my htaccess not functional.
In my apache2.conf file i have something like
<Directory />
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
if i change AllowOverride for "www" directory htaccess is functional but i get 403 forbidden error. please guide me what i am doing wrong.
regards.
You have to set AllowOverride to all like this.
<Directory "/var/www">
AllowOverride All
</Directory>
After that if you are facing forbidden error then probably you have error in htaccess file. Remove the code in htaccess file then start writing code block by block. By this you can debug error in htaccess file. For more info, you can have a look on this.
https://askubuntu.com/questions/429869/is-this-a-correct-way-to-enable-htaccess-in-apache-2-4-7-on-ubuntu-12-04#answer-429931

How to do a mod rewrite for this?

Currently, when my users are buying from my shop it will go to:
http://localhost.com/shop/index.php?shopid=1&item=2
How would I make it to where it would be like
1 being shopid, 2 being item.
http://locahost.com/shop/1/2
Try the following in your .htaccess file
RewriteEngine On
RewriteRule ^shop/([^/.]+)/([^/.]+)?$ shop/index.php?shopid=$1&item=$2 [L,NC]
Hope it works.
This option is in your httpd.conf file.
change it from
<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>

Slim PHP: 404 not found

Slim PHP keeps on giving me a 404 Not Found, whenever accessing either the index.php itself, or any of the REST services (e.g. index.php/MyService)
I suspect that my problem is related to my .htaccess file:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
Directory structure:
My Slim index.php is located under
/var/www/api/v1/index.php
My apache2.conf:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
I can execute any other PHP script just fine (e.g. /api/v1/test.php)

.htaccess not triggered

So I have the following .htaccess in my /var/www/site
RewriteEngine on
RewriteRule ^([^/]+)/?$ parser.php?id=$1 [QSA,L]
I have allowed override in my vhost:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/site>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
UPDATE:
Now I got it to work, however when I visit site.com, it also redirects me to this parser.php, in which I don't want as this is my homepage.
My homepage should be redirected to index.php and if I do mysite/NASKDj, it should be redirected to parser.php?pid=NASKDj. How do I fix this?
You have 'AllowOverride None' in the '/var/www/site' directory - this will overrive the one specified in the '/' directory. If your site is in /var/www/site you need to change This one to All too.
I just saw AllowOverride None in your <Directory /var/www/site>...</Directory>, So?

Categories