Wordpress .htaccess阻止子文件夹重写自己的URL

时间:2014-07-20 20:57:59

标签: php wordpress .htaccess mod-rewrite

所以我一直在寻找一段时间,似乎无法找到我想要的特定解决方案。我看过很多文章展示了如何解决wordpress重写问题,但没有一个能解决我的问题。

我目前在我的/ Root目录中安装了Wordpress。 .htaccess看起来像这样。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^manager - [L,NC] <-- I added this from other examples.
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

所以从我能说的这个告诉wordpress,嘿你会处理所有的网址,为了一切。永远。认真。永远无处不在:P

所以当我有一个子目录site.com/manager

时会出现问题

在这里,我想构建一个类似的URL捕获方法来管理用户查看/访问/等的内容。我添加到根.htaccess文件中的行(从我读过的内容)假设告诉wordpress,嘿不要触摸我该死的/ manager文件夹。

Wordpress是一个狡猾的贪婪的照顾者,它没有听。生病了去测试我的site.com/manager/test(抓住测试并用它从sql中提取信息)和wordpress接管并把我扔到wordpress 404页面。

我的.htaccess in / manager对于refrence来说如下,我想我也需要在这里重写一些东西,但是现在只是试图阻止wordpress过度承担:)。

DirectoryIndex index.php
<FilesMatch "\.(php|inc)$">
Order allow,deny
deny from all
</FilesMatch>
<FilesMatch "(index.php|logout.php)$">
Order allow,deny
allow from all
</FilesMatch>

非常感谢任何想法,想法,评论和关注。

谢谢。

1 个答案:

答案 0 :(得分:0)

所以在深入挖掘并进一步研究后,我找到了解决办法。不确定它是最好的解决方案,但它的工作。

根(/).htaccess

#Manager - A customer content manager
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/manager/(.*)$ [OR]
RewriteRule ^.*$ - [L]
</IfModule>
#end Manager

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

这似乎超出了wordpress的需要。

经理(/经理).htaccess

DirectoryIndex index.php
<FilesMatch "\.(php|inc)$">
Order allow,deny
deny from all
</FilesMatch>
<FilesMatch "(index.php|logout.php|install.php)$">
Order allow,deny
allow from all
</FilesMatch>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /manager/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>

顶部不是必需的,但我将其添加为文件保护/安全性。

<强>要点:

我使用%{REQUEST_URI}有选择地删除子文件夹,将其应用于更多子文件夹我会添加另一个

RewriteCond %{REQUEST_URI} ^/manager/(.*)$ [OR]

然后我在子目录的.htaccess文件中输入信息以进行url重写。从这里我可以操作URL将其转换为数组列表,以便进一步排序和数据库调用。