user3818090
user3818090

Reputation: 123

.htaccess file ignored on Ubuntu server

I have recently moved to a new server for my website, and i activated mod_rewrite with success, but some files still not working !

Like this one:

RewriteRule ^activate\/(.*)\/(.*)$  activate.php?Email=$1&hash=$2

I have made all necessary changes on my VPS (Ubuntu) !

Any idea ?

Like this lines work well:

RewriteRule ^search\/(.*)\/([a-zA-Z0-9_-]+)$  search.php?view=$1&p=$2
RewriteRule ^search$  searchResults.php
RewriteRule ^term$  term.php
RewriteRule ^faq$  faq.php
# Non-working line...
RewriteRule ^activate\/(.*)\/(.*)$  activate.php?Email=$1&hash=$2

Note that mod_rewrite are enabled and all other lines work well only this one !

Upvotes: 2

Views: 68

Answers (1)

Justin Iurman
Justin Iurman

Reputation: 19016

First thing, you must define a RewriteBase because of your two rules (first and last) that create both virtual directories.

Then, you should disable MultiViews option to make term or faq rule work without problem.

Finally, you can rewrite your patterns in a more generic way (or at least in a better way, more precise). Also, don't forget L flag ([L]) after each rule, otherwise mod_rewrite continues to evaluate next rules.

You can replace your current code in your htaccess by this one (assuming your htaccess is in root folder)

Options -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^search/([^/]+)/([^/]+)$ search.php?view=$1&p=$2 [L]
RewriteRule ^search$ searchResults.php [L]
RewriteRule ^term$ term.php [L]
RewriteRule ^faq$ faq.php [L]
RewriteRule ^activate/([^/]+)/([^/]+)$ activate.php?Email=$1&hash=$2 [L]

Upvotes: 1

Related Questions