.htaccess RewriteRule issue on Windows Server - apache

On a windows server we run Helicon Ape for running .htaccess rules and installed PHP. I've below lines in a .htaccess file in root directory:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^test/(.*)$ test/handle.php?path=$1 [L]
</IfModule>
I wrote the below code in handle.php file.
echo $_GET["path"];
exit;
When I enter any url like this : http://mysite.com/test/test.zip or http://mysite/test/FILENAME.EXT instead printing FILENAME.EXT it just prints handle.php as output!! what's wrong?

Try adding a condition to prevent rewriting handle.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/test/handle.php$
RewriteRule ^test/(.*)$ test/handle.php?path=$1 [L]
</IfModule>

Related

don't work redirect with .htaccess

I work local on my machine. I have some problems with redirect through .htaccess. In my web-application I have 2 redirect through 2 .htaccess files.
I have next structure my app:
root:
application (dir)
public (dir)
index.php
.htaccess
.htaccess
In first .htaccess file has next code:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$ [L]
</IfModule>
but it doesn't work. In browser I see next picture view in browser
I change file apach2.conf and add
<Directory /var/www/my-site/>
AllowOverride All
</Directory>
but it don't help fix problem.
What I must do to it work?
Try this :
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^(.*)$ public/index.php?$1 [L,QSA]

How to remove extension .php in subdirectory

I have problem to remove extension .php. For example the url is like
https://www.domainname.net/dev/member.php. I just want to remove the extension .php. can someone help me.
Try this in your htaccess :
Options +Multiviews
then you will be able to access your file without extension.
Here is the .htaccess code snippet that will help you put this code in your .htaccess file:
# Apache Rewrite Rules
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
# End of Apache Rewrite Rules
</IfModule>

Url-rewriting using .htaccess is not working

I would like my url which is: http://localhost/slide-form/ad_posted.php?title=Cow%20Buffalo%20Gopal-1426356570
to look like : http://localhost/slide-form/ad_posted/title/Cow%20Buffalo%20Gopal-1426356570/
The below is the rule i have added in my htaccess file:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteRule ad_posted/title/(.*)/ ad_posted.php?title=$1
RewriteRule ad_posted/title/(.*) ad_posted.php?title=$1
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.html
</IfModule>
But I see no changes in my url. Any help is much appreciated. Thanks
Have this code in /slide-form/.htaccess:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /slide-form/
RewriteCond %{THE_REQUEST} /ad_posted\.php\?title=([^\s&]+) [NC]
RewriteRule ^ ad_posted/%1? [R=302,L,NE]
RewriteRule ^ad_posted/title/(.+)/?$ ad_posted.php?title=$1 [L,QSA]
There are two things need to attention:
Make sure you apache or other web server is already opened rewrite
module.
Check your configuration settings and ensure the directory where
.htaccess file located have the overwrite permission.
Like following settings:

Cake 2.+ on shared hosting - 404 error

Since 2 days I have been trying to get my cake app working (using German 1&1 hosting). The desired address is: http://www.bzalewski.de/k/front. If you open it, you can see, it's there but without images and css. Also this: http://www.bzalewski.de/k/front/art/discover doesn't work (but it does locally with XAMPP. There is no routing, just ArtController --> public function discover()).
I followed the instructions from this article: http://bakery.cakephp.org/articles/tim_m/2007/09/20/500-errors-with-1and1-hosting-apache-1-x
My three .htaccess look like this:
./.htaccess
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^$ /k/front/app/webroot/ [L]
RewriteRule (.*) k/front/app/webroot/$1 [L]
</IfModule>
./app/.htaccess
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^$ /k/front/app/webroot/ [L]
RewriteRule (.*) /k/front/app/webroot/$1 [L]
</IfModule>
.app/webroot/.htaccess
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /k/front/app/webroot/index.php?url=$1 [QSA,L]
</IfModule>
I would appreciate any help to:
make controllers work (art/discover working)
make images and other stuff in the webroot directory work
Just to mention it: my local XAMPP installation works with standard .htaccess files without any problems.
Try adding this line in the root .htaccess (the htaccess in /k/front/ folder) after RewriteEngine On:
RewriteBase /k/front/
Edit : I did not see that you put /k/front/ everywhere in the htaccess
Then add RewriteBase / with you version of the htaccess
OR add RewriteBase /k/front/ with the default htaccess (without /k/front/ in the RewriteRules )

Silex rewrite, one.com

I am using this apache rewrite, when i am on my local machine.
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /skoleskak/web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
But after i uploaded it, to my host i get server error. They told me they dont support Options, but i can't get it working without that.
I am trying to route my Silex installation, so its /web/stats/ instead of web/index.php/stats.
I found this example for Codeigniter http://www.chrishjorth.com/blog/one-com-codeigniter-htaccess-rewrite-rules/
Anyone know how to make it work with Silex?
Same problem at some hosters. If your server has installed Apache >= 2.2.16 you can use the FallbackResource command:
FallbackResource /index.php
in your .htaccess instead of
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /skoleskak/web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
See also Apache’s fallbackresource: your new .htaccess command for more information.