目录中的友好URL


Friendly URL within a directory

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

后台的一个目录我有另一个目录,我希望它能与友好的URL一起工作。

在我的.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]

当调用像这样的url:mydomain.com/backoffice/edit_user/josepantonio时,会出现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规则之后更改了规则的位置,工作正常,在任何其他位置,它都不会工作。

您可以尝试使用在/backoffice/文件夹中使用自己的.htaccess

RewriteBase /backoffice/
# all the backofice rules
相关文章:
  • 没有找到相关文章