Php 目录中的友好URL

Php 目录中的友好URL,php,wordpress,.htaccess,friendly-url,Php,Wordpress,.htaccess,Friendly Url,我在域和目录中安装了Wordpress,我有一个完全独立于Wordpress的PHP+MySQL网站。它独自工作。此站点是backoffice,因此安装在/backoffice/目录下 一个目录的后台我有另一个目录,我想它与友好的网址的工作 在我的.htaccess中,我有以下规则: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^backoffice/edit_user/([^/\.]+)/

我在域和目录中安装了Wordpress,我有一个完全独立于Wordpress的PHP+MySQL网站。它独自工作。此站点是backoffice,因此安装在/backoffice/目录下

一个目录的后台我有另一个目录,我想它与友好的网址的工作

在我的.htaccess中,我有以下规则:

<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]

重新启动发动机
重写基/
重写规则^backoffice/edit\u user/([^/\.]+)/?$/backoffice/edit\u user/index.php?o=$1[L,NC,QSA]
重写规则^index\.php$-[L]
重写cond%{REQUEST_URI}=/服务器状态
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
重写规则^login/?$wp-login.php[QSA,L]
重写规则^postpass/?$wp login.php?操作=postpass[QSA,L]
重写规则^logout/?$wp login.php?操作=注销[QSA,L]
重写规则^lostpassword/?$wp login.php?操作=lostpassword[QSA,L]
重写规则^retrievepassword/?$wp login.php?操作=retrievepassword[QSA,L]
重写规则^resetpass/?$wp login.php?操作=resetpass[QSA,L]
重写规则^rp/?$wp login.php?操作=rp[QSA,L]
重写规则^register/?$wp login.php?操作=注册[QSA,L]

当调用像这样的url:mydomain.com/backoffice/edit_user/joseantonio时,会出现404页面

怎么了

提前感谢。

因为它在-您可以调试您的Apache重写。在虚拟主机或服务器配置中启用
RewriteLog

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

然后您将看到重定向404的规则。

最后,我可以找到解决方案:

以下是与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]

重新启动发动机
重写基/
重写规则^index\.php$-[L]
**重写规则^backoffice/edit\u user/([^/\.]+)/?$/backoffice/edit\u user/index.php?o=$1[L,NC,QSA]**
重写cond%{REQUEST_URI}=/服务器状态
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
重写规则^login/?$wp-login.php[QSA,L]
重写规则^postpass/?$wp login.php?操作=postpass[QSA,L]
重写规则^logout/?$wp login.php?操作=注销[QSA,L]
重写规则^lostpassword/?$wp login.php?操作=lostpassword[QSA,L]
重写规则^retrievepassword/?$wp login.php?操作=retrievepassword[QSA,L]
重写规则^resetpass/?$wp login.php?操作=resetpass[QSA,L]
重写规则^rp/?$wp login.php?操作=rp[QSA,L]
重写规则^register/?$wp login.php?操作=注册[QSA,L]

如您所见,我在index.php规则之后更改了规则的位置,工作正常,在任何其他位置,它都不会工作。

您可以尝试在/backoffice/folder中使用own.htaccess

RewriteBase /backoffice/
# all the backofice rules

发布wp生成的所有.htaccess文件。根目录中的htaccess.subdir中的htaccess