在htaccess文件中限制RewriteRule

时间:2012-10-23 19:25:21

标签: .htaccess url-rewriting rewrite

我有一个基于.htaccess文件中的一些规则的site php来删除url地址栏中的文件扩展名。基本上它需要http://netbureau.com.br/en/about.php/并将其转换为http://netbureau.com.br/en/about

以下是htaccess文件中的行:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

当我尝试在http://netbureau.com.br/blog/?feed=rss2访问博客的RSS订阅源时以及当我尝试在http://netbureau.com.br/blog为博客设置自定义永久链接时,问题就出现了。它被htaccess文件搞砸了。

那么有没有办法禁止/blog文件夹的RewriteRule,以便我可以取回我的RSS链接并在博客中设置自定义永久链接?

我知道它与Wordpress相关,但它感觉与htaccess文件的关联比Wp更多。

提前致谢。

编辑#1 : 我已经将wordpress永久链接设置为默认结构,如下所示:http://netbureau.com.br/blog/?p=123这使我的rss链接恢复正常。 剩下的问题是Wordpress给了我自己的重写,它是:

RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L] 

有没有办法继续使用第一个规则来应用除/ blo /文件夹之外的整个站点,并将WP规则仅应用于/ blog /文件夹? 我尝试了不同的组合但到目前为止没有运气。我只能拥有没有博客或自定义博客链接的自定义链接以及网站页面上的404的网站。

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/blog/?
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

!^/blog/?表达式排除任何以/blog

开头的URI