-2

I have a Wordpress installation in a domain and within a directory, I have a site developed in PHP+MySQL completely independent of the wordpress. It works alone. This site is a backoffice, so it's installed under the /backoffice/ directory.

One of the directories of the backoffice I have another directory I want it works with friendly URL's.

In my .htaccess I have the following rules:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^backoffice/edit_user/([^/\.]+)/?$ /backoffice/edit_user/index.php?o=$1 [L,NC,QSA]


RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^login/?$ wp-login.php [QSA,L]
RewriteRule ^postpass/?$ wp-login.php?action=postpass [QSA,L]
RewriteRule ^logout/?$ wp-login.php?action=logout [QSA,L]
RewriteRule ^lostpassword/?$ wp-login.php?action=lostpassword [QSA,L]
RewriteRule ^retrievepassword/?$ wp-login.php?action=retrievepassword [QSA,L]
RewriteRule ^resetpass/?$ wp-login.php?action=resetpass [QSA,L]
RewriteRule ^rp/?$ wp-login.php?action=rp [QSA,L]
RewriteRule ^register/?$ wp-login.php?action=register [QSA,L]

When invoked a url like this one: mydomain.com/backoffice/edit_user/joseantonio the 404 page come up.

What's wrong?

Thanks in advance.

Apalabrados
  • 1,098
  • 8
  • 21
  • 38

3 Answers3

6

As it is in this answer - you can debug your Apache rewrites. Turn on RewriteLog in your virtual host OR server configuration:

RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3

Then you'll see what rule makes it to redirect 404.

Community
  • 1
  • 1
Paweł Tomkiel
  • 1,974
  • 2
  • 21
  • 39
2

Finally, I could find the solution:

Here is the code used in conjuntion with the wordpress:

     <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]

**RewriteRule ^backoffice/edit_user/([^/\.]+)/?$ /backoffice/edit_user/index.php?o=$1 [L,NC,QSA]**

    RewriteCond %{REQUEST_URI} !=/server-status
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    RewriteRule ^login/?$ wp-login.php [QSA,L]
    RewriteRule ^postpass/?$ wp-login.php?action=postpass [QSA,L]
    RewriteRule ^logout/?$ wp-login.php?action=logout [QSA,L]
    RewriteRule ^lostpassword/?$ wp-login.php?action=lostpassword [QSA,L]
    RewriteRule ^retrievepassword/?$ wp-login.php?action=retrievepassword [QSA,L]
    RewriteRule ^resetpass/?$ wp-login.php?action=resetpass [QSA,L]
    RewriteRule ^rp/?$ wp-login.php?action=rp [QSA,L]
    RewriteRule ^register/?$ wp-login.php?action=register [QSA,L]

As you can see, I changed the position of my rule after the index.php rule, works fine, in any other position, it will not work.

Apalabrados
  • 1,098
  • 8
  • 21
  • 38
1

You can try to use own .htaccess in /backoffice/ folder with

RewriteBase /backoffice/
# all the backofice rules
artoodetoo
  • 918
  • 10
  • 55